Может ли Magento использовать переменную сеанса в ключе кэша? - PullRequest
0 голосов
/ 31 января 2012

Я запускаю разделенный тест A-B на нескольких макетах домашней страницы. Есть наблюдатель, который устанавливает переменную сеанса (группа A или группа B), а затем макет изменяется на основе этой переменной.

Проблема в том, что страница кэшируется (в полностраничном кэше Magento), и независимо от того, в какую группу входит пользователь, они все видят либо страницу A, либо страницу B.

Могу ли я изменить Magento так, чтобы каждая версия домашней страницы кэшировалась отдельно? Или я могу полностью отключить кеширование на главной странице? Или есть лучший способ сделать этот вид теста?

Ответы [ 2 ]

0 голосов
/ 31 января 2012

Вы можете использовать заголовок, совместимый с HTTP 1.1, чтобы изменить поведение кэширования для конкретной страницы.

См .: http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html#sec13.2.6

Требуемый заголовок: Cache-Control: no-cache.

Вам нужно отправить этот заголовок вместе с документом. Используя php, вы будете использовать функцию header для указания заголовков.

header("Cache-Control: no-cache");
0 голосов
/ 31 января 2012

Это не относится напрямую, но мне пришлось по-разному кэшировать нижний колонтитул в зависимости от того, на какой странице он находился, и в итоге отредактировал файл Mage/Page/Block/Html/Footer.php и изменил функцию getCacheKey(), добавив часть URL-адреса в возвращаемая переменная. Не могли бы вы вместо этого добавить переменную сеанса?

Я понимаю, что вы не смотрите на нижний колонтитул так, как я, но казалось, что он может указать вам полезное направление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...