Désactiver complet de la page mise en cache de bloc spécifique
Je travaille avec magento EE, qui a pleine page fonctionnalité de mise en cache. Il y a un bloc qui est mis à jour dynamiquement, mais je n'arrive pas à désactiver le cache.
Ce que je veux atteindre dans l'idéal: désactiver la mise en cache uniquement pour le bloc particulier de sorte qu'il serait rendu à nouveau à chaque fois que le chargement de la page.
Choses que j'ai essayé:
Inclure unsetData de fichier de mise en page
<action method="unsetData"><key>cache_lifetime</key></action>
<action method="unsetData"><key>cache_tags</key></action>
De la fonction Set _saveCache de fausse déclaration
protected function _saveCache($data, $id, $tags = array(), $lifetime = null) {
return false;
}
Définir des valeurs différentes pour cache_lifetime
public function __construct()
{
$this->addData(array(
‘cache_lifetime’ => 0,
‘cache_tags’ => array(Mage_Catalog_Model_Product::CACHE_TAG),
));
}
Peut-être que je suis absent quelque chose en pleine page mise en cache de la mécanique?
Le terme que vous cherchez est
honnêtement, je ne sais pas encore, je suppose que c'est celui qui vient avec Magento EE.
Il est intéressant de mentionner ici que lorsque la durée est définie à 0, Magento alors, étonnamment, cache le bloc de 7200 secondes inchoo.net/magento/magento-block-caching
hole punching
; dans le cas de vernis FPC vous avez aussi besoin de faire de trous du contenu dynamique à l'aide de javascript Ajax. Quelle méthode de mise en cache utilisez-vous?honnêtement, je ne sais pas encore, je suppose que c'est celui qui vient avec Magento EE.
Il est intéressant de mentionner ici que lorsque la durée est définie à 0, Magento alors, étonnamment, cache le bloc de 7200 secondes inchoo.net/magento/magento-block-caching
OriginalL'auteur nevermourn | 2013-05-31
Vous devez vous connecter pour publier un commentaire.
Bien, j'ai trouvé un couple de bons postes et de mettre en œuvre mon cache avec
etc/cache.xml
, qui enveloppe mon bloc avec l'objet conteneur.Mon
cache.xml
:Que j'ai utilisé ici comme
block
le bloc qui ne doit pas être mis en cache, commename
nom de bloc dans ma mise en page, et commecontainer
j'ai choisi mon conteneur.Code de conteneur:
Ici j'ai mis
microtime()
la fonction d'identifier les bloquer, mais à l'intérieur de mon module, j'ai utilisé cookie variables liées à mon module. Je crois que enregistre redondant de rechargement d'un bloc lorsque rien n'a vraiment changé.La chose que je n'ai pas trouvé dans d'autres tutoriels que j'ai eu à créer la mise en page de la variable et de l'attribuer à mon bloc, sinon je recevais seulement mon bloc au lieu de l'ensemble de la page.
Même problème sur reload. l'exécution de l'EE
OriginalL'auteur nevermourn
Voici la solution pour la désactivation de la FPC pour un contrôleur spécifique (qui peut être étendu à des actions spécifiques).
D'abord créer un Observateur à écouter sur le controller_action_predispatch événement:
Puis ajoutez les lignes suivantes à votre config.xml fichier pour le module. Cela va dans la section:
Maintenant Magento va servir de votre page à chaque fois et de contournement de FPC pour la demande.
Et Vous pouvez également consulter: http://mikebywaters.wordpress.com/2011/12/14/disable-magento-full-page-cache-on-a-per-controller-basis/
$cache->banUse('full_page');
Merci pour cette solution mais j'ai besoin d'un seul bloc pour être rendu à chaque fois, et j'en ai besoin pour n'importe quel contrôleur.
désactiver les CPE pour un contrôleur spécifique uniquement pas pour tous et vous pouvez utiliser le code ci-dessous également Mage::app() ->getCacheInstance() ->banUse(Mage_Core_Block_Abstract::CACHE_GROUP);
OriginalL'auteur
durée doit être défini sur null pour désactiver le cache pour ce bloc
OriginalL'auteur Matoeil