Den Cache-Status einer Seite prüfen

31.01.2013

Mit den neuen Framework-Funktionen wPageCur::willAddToCache und wPageCur::wasCached können Sie ermitteln, ob eine Seite in den Cache gestellt wird bzw. aus dem Cache geladen wurde. 

Seiten werden grundsätzlich nur dann gecacht, wenn der Besucher nicht angemeldet ist. Unabhängig von den weblicationspezifischen,  personalisierten Daten, können kundenspezifische Skripte beliebige personalisierte Informationen speichern. Solche personalisierte Daten dürfen keinesfalls im Cache hinterlegt werden.

Während generelle Cache-Einstellungen in der pre.php gesetzt werden können, womit sich unter speziellen Umstellen auch bei eingeloggten Benutzern ein Cache nutzen lässt, sind die Funktionen wPageCur::willAddToCache, wPageCurr::wasCached und wPageCur::doNotAddToCache ausschließlich für den Einsatz innerhalb der XSLT-Transformation gedacht. Die XSLT-Tranformation findet statt, nachdem ermittelt wurde, ob der Cache zu nutzen ist und bevor die Seite ggf. in den Cache gestellt wird.

Zu cachende Seite nicht cachen

Will man eine Seite, die eigentlich gecacht wird aufgrund von eigenen Erweiterungen nicht cachen, genügt der Aufruf wPageCur::doNotAddToCache() innerhalb der XSLT-Transformation. Nach erfolgter Transformation wird die Seite nicht im Cache hinterlegt.
Dies kann nützlich sein, wenn man die Ausgabe um Daten anreichert, die für einen anonymen Benutzer personalisiert sind. Bereits die Ausgabe der Session-ID ist übrigens schon eine personalisierte Information.

Prüfen, ob eine Seite gecacht wird

Falls man bestimmte Funktionen nur dann ausführen will, wenn man sicher gehen kann, dass eine Seite nicht gecacht wird, kann man für die Abfrage die Funktion wPageCur::willAddToCache() nutzen. Diese zeigt bereits während der XSLT-Transformation an, ob die aktuelle Seite in den Cache gestellt werden wird.

Prüfen, ob eine Seite aus dem Cache kommt

In einer Seite, die aus dem Cache kommt können auch dynamische Bereiche definiert sein. Durch die Kombination von Cache und dynamischen Inhalten, kann es deshalb notwendig sein, nach der Transformation innerhalb der pre.php oder auch in den wsl:php  execution= "post" Bereichen Funktionen abhängig davon auszuführen, ob eine Seite aus dem Cache kommt oder nicht.


Twitter
RSS-Feed