Seiten-Cache

Einleitung

Mit dem eCMS Seiten-Cache ist es möglich die Performance Ihrer Website zu steigern. Dafür werden erzeugte Seiten beim der ersten Ansicht der Website als rendered documents im Dateisystem des Servers gespeichert und bei erneutem Aufruf der Seite durch Website-Besucher nicht dynamisch neu erzeugt, sondern aus den rendered documents heraus angezeigt.

Dabei kann verschieden konfiguriert werden, welche Inhalte bereits fertig erzeugt und gespeichert werden sollen und welche dennoch dynamisch bleiben. Dies ist sogar möglich wenn Sie URL-GET-Parameter (bespielsweise hilfreich bei Template-Seiten oder Listenseiten mit Blätterfunktion) verwenden. Außerdem ist es möglich den Modus des Cache (offensiv, defensiv) festzulegen und zu bestimmen, für welchen Zeitraum die Seite im Cache bleiben darf, bevor Sie neu erzeugt und wieder als rendered document abgelegt wird.

Inhalte cachen

Dem eCMS Cache kann mitgeteilt werden, welche Inhalte in den Cache geschrieben werden sollen. Dies kann auf den drei Ebenen stattfinden:

  • Cacheeinstellung pro Seite
  • Cacheeinstellung pro Platzhalterkonfiguration
  • Cacheeinstellung pro Format

Cache pro Seite

Die oberste Ebene ist die Cacheeinstellung pro Seite.

Wenn Sie eine Seite erstellen oder bearbeiten haben Sie im Reiter Cache die Möglichkeit die komplette Seite für den Cache zuzulassen (Enabled) oder nicht (Disabled). Außerdem können Sie hier alle Variablen einstellen, die für diese Seite als URL-GET-Parameter genutzt werden und die für den Cache Berücksichtigung finden sollen. Das bedeutet, wenn Sie bespielsweise eine Seite haben, auf der eine Liste mit Blätterfunktion eingebunden ist, so können Sie den URL-GET-Parameter, der Auskunft über die aktuelle Seite gibt (z.B. page), in dieses Feld eintragen. Damit würde dann für jede Seite der Liste ein eigenes rendered document erzeugt. Sie können in das Feld mehrere URL-GET-Parameter eintragen. Diese werden mit dem | (Pipe) - Zeichen von einander getrennt.

Cache pro Platzhalterkonfiguration

Die mittlere Ebene ist die Cacheeinstellung pro Platzhalterkonfiguration.

Wenn Sie eine Platzhalterkonfiguration im Bearbeitungsmodus geöffnet haben, so finden Sie dort die Einstellungsmöglichkeit Caching. Dort können Sie einstellen, ob die Platzhalterkonfiguration kontextbezogen pro Seite oder statisch über alle Seiten in den Cache geschrieben werden soll oder nicht. Außerdem können Sie hier festlegen nach welcher Zeit der Cache dieses Platzhalters erneuert werden soll.

Cache pro Format

Die unterste Ebene ist die Cacheeinstelung pro Format.

Wenn Sie ein Format schreiben, so können Sie beim Rückgabe-Array mitgeben, ob dieses Format grundsätzlich in den Cache geschrieben werden darf oder nicht.

Hier sollten Sie grundsätzlich und gründlich überlegen, welche Daten das Format verarbeitet und ausgibt. Wenn Sie dynamische Daten durch das Format präsentieren, die sich nach jedem einzelnen Website-Besucher richten (z.B. die Ausgabe des gerade eingeloggten Benutzers), so dürfen Sie das Format nicht in den Cache schreiben, da sonst andere Besucher eine falsche Anzeige erhalten.
Wie Sie Formate schreiben und die Cache-Option einstellen können, erfahren Sie unter: Formate.

Cache Modus

Sie können bei der Aktivierung des Cache bestimmen, welcher Modus pro Ebene verwendet werden soll. Hier werden zwei Modi offensiv und defensiv unterschieden.

Offensiver Modus

Mit dem offensiven Modus wird grundsätzlich alles in der jeweiligen Ebene in den Cache geschrieben, so lange die jeweilige Cacheeinstellung pro Ebene nicht explizit deaktiviert wurde.

Dieser Modus wird empfohlen, wenn Sie grundsätzlich alles in den Cache schreiben möchten und nur bestimmte Bereiche davon ausnehmen wollen. Der Wartungsaufwand ist hier am geringsten.

Defensiver Modus

Mit dem defensiven Modus wird in der Ebene nichts in den Cache geschrieben, so lange die jeweilige Cacheeinstellung pro Ebene nicht explizit aktiviert wurde.

Dieser Modus wird empfohlen, wenn Sie die volle Kontrolle über die sich im Cache befindenden Inhalte behalten und steuern wollen. Der Wartungsaufwand ist hierbei allerdings sehr groß.

Beispiele

Beispiel 1:

Sie haben folgende Einstellungen gewählt:

  • Seite "Meine Seite" - Cache: nicht definiert - Modus für Seiten: offensiv
  • Ein PHC auf "Meine Seite" - Cache: nicht definiert - Modus für PHC: defensiv
  • Format aus PHC auf "Meine Seite" - Cache: erlaubt - Modus für Formate: offensiv

Dies bedeutet:

  • Die Seite "Mein Seite" wird grundsätzlich in den Cache geschrieben wird, da die Cacheeinstellung nicht explizit deaktiviert wurde.
  • Die Platzhalterkonfiguration auf der Seite "Meine Seite" wird nicht in den Cache geschrieben, da der Modus auf defensiv steht und für den PHC nicht explizit das Caching erlaubt wurde. Der Platzhalter wird damit dynamisch bei jedem Seitenaufruf generiert.
  • Das Format ist damit auch nicht im Cache der Seite "Meine Seite", da der zugehörige Platzhalter bereits nicht enthalten ist. Die Formatausgabe wird damit bei jedem Seitenaufruf generiert.

Beispiel 2:

Sie haben folgende Einstellungen gewählt:

  • Seite "Meine Seite" - Cache: nicht definiert - Modus für Seiten: offensiv
  • Ein PHC auf "Meine Seite" - Cache: nicht definiert - Modus für PHC: offensiv
  • Format aus PHC auf "Meine Seite" - Cache: nicht erlaubt - Modus für Formate: offensiv

Dies bedeutet:

  • Die Seite "Mein Seite" wird grundsätzlich in den Cache geschrieben wird, da der Modus auf offensiv steht und die Cacheeinstellung nicht explizit deaktiviert wurde.
  • Die Platzhalterkonfiguration auf der Seite "Meine Seite" würde grundsätzlich in den Cache geschrieben, da der Modus auf offensiv steht und für den PHC nicht explizit das Caching deaktiviert wurde.
  • Aber, das Format wird nicht in Cache der Seite "Meine Seite" geschrieben, da der Modus auf offensiv steht und die Cacheanweisung im Format explizit deaktiviert wurde. Die Formatausgabe wird damit bei jedem Seitenaufruf generiert. Da Format und Platzhalterkonfiguration zusammenhängen, kann die Platzhalterkonfiguration nicht in den Cache geschrieben werden, wenn das Format nicht Bestandteil des Cache sein soll. Die Platzhalterkonfiguration wird somit als Ganzes auch bei jedem Seitenaufruf generiert!