Если вы можете избежать этого, не обходите кеш для любых блоков. Это улучшит работу пользователя в ходе работы журнала. Однако есть несколько способов решить эту проблему.
О блоге here об отключении кеша на основе каждого контроллера. Вы могли бы использовать тот же метод на данный момент, за исключением другого условия «если».
Где я проверяю:
if ($action instanceof <controller_class_name>) {
Вы можете так же легко использовать:
if ($user_is_mobile == true) {
Действовать таким образом будет получить только мобильные пользователи, работающие в настоящее время. Действительно, ответ заключается не в том, чтобы отключить или обойти кеш, он должен использовать этот же метод для прослушивания запроса страницы и назначить разные макеты для мобильных и немобильных запросов. Каждый дескриптор макета затем будет кэшировать соответственно.
Посмотрите, как вы используете ручки в обновлениях макета. Из памяти это что-то вроде этого:
Mage::app()->getLayout()->getUpdate()->addHandle("mobile");
Затем в page.xml, добавить новый узел называется мобильным, что-то вроде этого
<mobile>
<reference name="root">
<remove name="mainHead" />
<block type="core/template" name="mobileHead" />
</reference>
</mobile>
Или что-то вдоль этих линий. Это безумно непроверено, но я надеюсь, что вы получите эту идею.
В зависимости от разрешения экрана в противном случае вы можете использовать отзывчивый css.
Спасибо, Майк. Отличный блог, кстати. Не следует исключать работу с FPC из box? Является ли это ошибкой в 1.11? 1.12, поставляется с темой iPhone, и она загружается нормально даже с FPC. – djdy
Спасибо, товарищ! Если честно, я еще не работал с 1.12, и я не знаю, как это работает Я обязательно должен туда попасть и посмотрю! С FPC, если блок кэшируется, тогда все блоки в этом блоке кэшируются в результате. Это не идеально подходит для динамического контента (хотя то, что вы описываете на самом деле не является «динамическим»). Существует техника, называемая дырочкой, которую вы, возможно, слышали об этом, обходит это. –