Tam sayfa önbelleği neden blok önbelleği devre dışı bırakıyor?


13

Her sayfada (gezinme) bulunan statik bir parçam var, ancak oluşturulması uzun sürüyor. Bu yüzden bir önbellek ömrü ve statik bir önbellek anahtarı ayarladım.

FPC etkinleştirilene kadar iyi çalışır. Ardından, blok yine yeni çağrılan bir sayfa için oluşturulur ve blok önbelleğinden sunulmaz.

Bu satır var Enterprise_PageCache_Model_Observer:

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

Bunun nedeni nedir? FPC açık olsa bile bazı blokları önbelleğe almam bana mantıklı geliyor çünkü aksi halde önbellekten tam olarak sunulmayan sayfaların üretimi yavaşlıyor.

  1. Bunun arkasındaki tasarım kararı nedir?
  2. Bu konuda iyi bir çözüm nedir?
  3. Bu blok önbellek yasaklamasını kaldırmam zararlı olur mu?

bunun eski bir soru olduğunu biliyorsun, ama bu konuda bir şey buldun mu?
xelber

Yanıtlar:


1

Bu hata Magento 1.14.2.0'da düzeltildi. ( Bilinen Sorunlar altında ref http://merch.docs.magento.com/ee/user_guide/magento/release-notes-ee-1.14.2.html )


2
Bu konuyu 1.14.2.4'te gördüm. Mantığın zaman içinde değiştiğini görebiliyorum. Kod if ile çevrilidir: if ($this->_processor->canProcessRequest($request) && ($request->isStraight() || $this->_processor->getRequestProcessor($request)) ) { Mage::app()->getCacheInstance()->banUse(Mage_Core_Block_Abstract::CACHE_GROUP); } ama neden blok önbelleğini yasaklamak arkasında mantık ile ilgili bir şey bulamıyorum. Daha fazla aydınlatabilir misiniz?
PanPipes

2

Örneğin, ödeme veya alışveriş sepeti sayfasında dinamik bloklar için FPC'yi devre dışı bırakabilmek. 3. soru hakkında, bence FPC sürecini bozabilecek bunu yapmamalısınız (açıkçası, doğru cevap vermek için, kaynak kodunu da kontrol etmeliyiz).


İlk bölüm ilk sorumla mı ilgili? Evetse, ödeme veya alışveriş sepeti sayfasında FPC'yi devre dışı bırakmak için neden engelleme önbelleğinin devre dışı bırakılması gerekiyor? Aslında, blok önbellek yalnızca tüm sayfa önbelleğe alınmışsa devre dışı bırakılır.
Alex

Sadece kullanıcı çerezlerini kontrol eden kaynak kodunu kontrol ettim. Kullanıcı çerezi engellediyse, FPC önbellekleri engeller. _getCookie işlevi, kullanıcı çerezini kontrol eden Enterprise_PageCache_Model_Cookie örneğini döndürür.
Oğuz Çelikdemir

Bunun çerezle ne ilgisi var? Ve hangi kod satırından bahsediyorsun? karıştı
Alex

Alex, bu gece tekrar kontrol edip gerekli kod bloklarını göndereceğim.
Oğuz Çelikdemir
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.