Enterprise Edition Controller-Ereignisse werden nicht ausgelöst, wenn der Cache für vollständige Seiten aktiviert ist

8

So hatten wir bei einer unserer letzten Starts eine Menge von Ereignissen, die wir beobachtet haben, wie controller_action_predispatch. Als die Site online ging, bemerkten wir, dass unsere Beobachter nie dafür aufgerufen wurden. Nach einer kleinen Untersuchung hat einer unserer Entwickler diesen Code-Block in Mage_Core_Model_App um die Zeile 292 gefunden.

%Vor%

Wie Sie sehen können, wenn $ this- & gt; _cache- & gt; processRequest () wahr ist, was es ist, wenn der volle Seitencache aktiviert ist, gelangen Sie niemals zum Versand. Der Entwickler hat http_response_send_before gefunden, welches den Aufruf in beide Richtungen bekommt, aber es scheint mir, als wäre das ein Fehler oder Sie sollten niemals diese Controller-Dispatch-Ereignisse für irgendetwas verwenden, wenn Sie das vollständige Seiten-Caching aktiviert haben. Irgendwelche Gedanken?

    
dan.codes 19.01.2011, 12:42
quelle

3 Antworten

7

Angesichts der Art des vollständigen Seitencachings würde ich das "wie vorgesehen" nennen. Während es ein wenig seltsam sein kann, dass einige Ereignisse nicht ausgelöst werden, mussten sie eine Linie auswählen, und diese ergibt für mich einen Sinn, zumal der Controller nie wirklich ausgelöst wird.

Sie sollten diese Controller-Dispatch-Ereignisse für alles verwenden, was sich auf die Seite auswirkt (da es noch generiert werden muss), aber wenn Sie es für das Tracking und so verwenden, wäre es nicht angemessen.

    
Joseph Mastey 19.01.2011, 14:09
quelle
4

Sehen Sie hier, wenn Sie erfahren möchten, wie Caching mit Magento Enterprise funktioniert

Ссылка

    
Nasaralla 22.02.2011 17:18
quelle
1

Das einzige zuverlässige Ereignis, auf das mit und ohne aktivierten Seitencache gewartet wird, ist http_response_send_before .

    
philwinkle 26.02.2015 23:02
quelle

Tags und Links