Perché la cache a pagina intera disabilita la cache dei blocchi?


13

Ho una parte statica che è inclusa in ogni pagina (navigazione), ma richiede molto tempo per essere generata. Ecco perché ho impostato una durata della cache e una chiave cache statica.

Funziona bene, fino a quando FPC è abilitato. Quindi il blocco viene ancora generato di nuovo per una pagina appena chiamata e non pubblicato dalla cache dei blocchi.

C'è questa linea in Enterprise_PageCache_Model_Observer:

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

Qual è la ragione di ciò? Per me ha ancora senso memorizzare alcuni blocchi nella cache, anche se FPC è attivo, perché altrimenti la generazione di pagine che non sono completamente servite dalla cache viene rallentata.

  1. Qual è la decisione progettuale alla base di ciò?
  2. Qual è una buona soluzione al riguardo?
  3. Sarebbe dannoso se rimuovessi questo blocco della cache dei blocchi?

sai che questa è una vecchia domanda, ma hai trovato qualcosa al riguardo?
xelber,

Risposte:


1

Questo errore è stato corretto in Magento 1.14.2.0. (consultare http://merch.docs.magento.com/ee/user_guide/magento/release-notes-ee-1.14.2.html in Problemi noti)


2
Mi sono appena imbattuto in questo in 1.14.2.4. Vedo che la logica è cambiata nel tempo. Il codice è racchiuso dal if: if ($this->_processor->canProcessRequest($request) && ($request->isStraight() || $this->_processor->getRequestProcessor($request)) ) { Mage::app()->getCacheInstance()->banUse(Mage_Core_Block_Abstract::CACHE_GROUP); } ma non riesco a trovare nulla sul ragionamento alla base del motivo per cui si bandirebbe la cache dei blocchi. Puoi illuminare di più?
PanPipes,

2

Per poter disabilitare FPC per blocchi dinamici, ad esempio, nella pagina di pagamento o carrello. A proposito della terza domanda, a mio avviso non dovresti farlo, il che potrebbe interrompere il processo FPC (per essere sinceri, per dare la risposta giusta, dovremmo controllare anche il codice sorgente).


La tua prima parte riguarda la mia prima domanda? Se sì, perché è necessario disabilitare la cache dei blocchi per disabilitare FPC nella pagina di pagamento o carrello? In effetti, la cache di blocco è disabilitata solo se l'intera pagina è memorizzata nella cache.
Alex

Ho appena controllato il codice sorgente che controlla i cookie dell'utente. Se l'utente ha bloccato il cookie, FPC blocca le cache. La funzione _getCookie restituisce l'istanza Enterprise_PageCache_Model_Cookie che controlla il cookie dell'utente.
Oğuz Çelikdemir,

Cosa c'entra questo con il cookie? E di quale linea di codice stai parlando? confuso
Alex

Alex, stasera controllerò di nuovo e ti invierò i blocchi di codice necessari.
Oğuz Çelikdemir,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.