Чому кеш повного сторінки відключає кеш-пам'ять блоку?


13

У мене є статична частина, яка міститься на кожній сторінці (навігація), але генерує багато часу. Тому я встановив термін служби кешу та статичний ключ кешу.

Працює чудово, доки не включено FPC. Потім блок все ще генерується знову для щойно викликаної сторінки і не подається з кеш-пам'яті блоку.

Є цей рядок у Enterprise_PageCache_Model_Observer:

Mage::app()
    ->getCacheInstance()
    ->banUse(Mage_Core_Block_Abstract::CACHE_GROUP); // disable blocks cache

У чому причина цього? Мені є сенс все-таки кешувати певні блоки, навіть якщо FPC увімкнено - тому що в іншому випадку генерація сторінок, які не повністю обслуговуються з кеша, сповільнюється.

  1. Що за цим вирішує дизайн?
  2. Що є хорошим рішенням навколо цього?
  3. Чи було б шкідливо, якщо я просто видалю цей заборонений кеш-пам'ять?

знаєте, це давнє запитання, але ви щось з цього знайшли?
xelber

Відповіді:


1

Ця помилка була виправлена ​​в Magento 1.14.2.0. (див. http://merch.docs.magento.com/ee/user_guide/magento/release-notes-ee-1.14.2.html у розділі Відомі проблеми)


2
Я щойно натрапив на це 1.14.2.4. Я бачу, що логіка змінилася з часом. Код оточений символом if: if ($this->_processor->canProcessRequest($request) && ($request->isStraight() || $this->_processor->getRequestProcessor($request)) ) { Mage::app()->getCacheInstance()->banUse(Mage_Core_Block_Abstract::CACHE_GROUP); } але я не можу знайти нічого, що стосується міркувань, чому ви заборонили б кеш блоку. Ви можете просвітити більше?
PanPipes

2

Щоб вимкнути FPC для динамічних блоків, наприклад, у касі або на сторінці кошика. Щодо третього запитання, на мою думку, ви не повинні робити цього, що може порушити процес FPC (якщо чесно, щоб дати правильну відповідь, ми також повинні перевірити вихідний код).


Ваша перша частина стосується мого першого питання? Якщо так, то чому блокування кешу потрібно відключити, щоб відключити FPC у касі або на сторінці кошика? Насправді кеш-пам'ять блоку вимкнений лише у тому випадку, якщо кешується вся сторінка.
Алекс

Просто я перевірив вихідний код, який керує файлами cookie користувача. Якщо користувач заблокував файл cookie, FPC блокує кеші. Функція _getCookie повертає Enterprise_PageCache_Model_Cookie, який керує файлом cookie користувача.
Oğuz Çelikdemir

Що це стосується печива? І про який рядок коду ви говорите? плутати
Олексій

Алекс, сьогодні вночі я ще раз перевірю і надішлю тобі потрібні блоки коду.
Oğuz Çelikdemir
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.