View-Cache und Cache-Blöcke
Diese Seite richtet sich an Website-Ersteller, die Templates für Seiten schreiben und diese sowohl schnell als auch aktuell brauchen. Zwei Caches erledigen den Großteil der Arbeit: Der View-Cache für Inhalte hält den gerenderten Hauptbereich jeder Seite vor, und Cache-Blöcke halten Teile von Templates wie Menüs vor.
Inhalt
- Der View-Cache für Inhalte
- Was ein Veröffentlichen leert
- Cache-Blöcke
- Schlüssel, Ablauf und Teilbaum-Ablauf
- Veraltete Ausgaben untersuchen
Der View-Cache für Inhalte
site.ini [ContentSettings]:
| Schlüssel | Ausgeliefert | Bedeutung |
|---|---|---|
ViewCaching | enabled | die Ausgabe von content/view zwischenspeichern |
CachedViewModes | full;sitemap;pdf | die zwischengespeicherten Ansichtsmodi |
CachedViewPreferences[] | Benutzereinstellungen, die die Ausgabe verändern und Teil des Schlüssels werden |
Eine zwischengespeicherte Ansicht wird je Knoten, Ansichtsmodus, Sprache, Siteaccess, Rollen und Einschränkungen des Benutzers, Ansichtsparametern und Layout vorgehalten. Das Pagelayout gehört nicht dazu: Es läuft jedes Mal, weshalb es Cache-Blöcke verwendet.
Was ein Veröffentlichen leert
Das Veröffentlichen eines Objekts leert den Cache seiner eigenen Knoten, ihrer Eltern und verwandter Objekte, so wie
settings/viewcache.ini [ViewCacheSettings] es festlegt: ClearRelationTypes[] (common, reverse_common,
reverse_embedded) bestimmt, welche Relationen zählen; SmartCacheClear ergänzt Regeln je Klasse. Eine Seite, die
Inhalte aus weit entfernten Teilen des Baums auflistet (eine Startseite mit Nachrichten), wird nicht automatisch
geleert, sofern keine Regel das festlegt; verwenden Sie in ihren Cache-Blöcken den Teilbaum-Ablauf oder eine Regel für
das gezielte Leeren des Caches.
Cache-Blöcke
{cache-block keys=array( $module_result.uri, $current_user.contentobject_id )}
... expensive menu ...
{/cache-block}Die Ausgabe des Blocks wird gespeichert und wiederverwendet, solange seine Schlüssel passen und er nicht abgelaufen ist. Veröffentlichte Inhalte leeren standardmäßig alle Template-Block-Caches, sodass ein neuer Ordner in den Menüs erscheint.
Schlüssel, Ablauf und Teilbaum-Ablauf
| Parameter | Bedeutung |
|---|---|
keys | Werte, von denen die Ausgabe abhängt: die Adresse, der Benutzer, die Sprache |
expiry | Sekunden, bis der Block abläuft (Standard zwei Stunden); 0 bedeutet nie aufgrund der Zeit |
ignore_content_expiry | der Block wird durch Veröffentlichen nicht geleert |
subtree_expiry | der Block wird nur geleert, wenn unterhalb dieses Knotens etwas veröffentlicht wird |
Eine Nachrichtenliste auf der Startseite:
{cache-block subtree_expiry='/News' expiry=0}
{foreach fetch( 'content', 'list', hash( 'parent_node_id', 58, 'limit', 5, 'sort_by', array( 'published', false() ) ) ) as $item}
{node_view_gui content_node=$item view='line'}
{/foreach}
{/cache-block}Speichern Sie niemals Ausgaben zwischen, die sich je Benutzer unterscheiden (eine Begrüßung, die Anzahl im Warenkorb), ohne den Benutzer in den Schlüsseln.
Veraltete Ausgaben untersuchen
| Symptom | Versuchen Sie |
|---|---|
| Eine Seite zeigt nach dem Veröffentlichen alte Inhalte | --clear-tag=content; ergänzen Sie dann eine Regel für das gezielte Leeren oder einen Teilbaum-Ablauf |
| Ein Menü zeigt einen alten Ordner | --clear-id=template-block; prüfen Sie die Schlüssel des Blocks |
| Die Daten eines Benutzers werden einem anderen angezeigt | dem Block fehlt der Benutzer in den Schlüsseln: sofort beheben |
| Angemeldete Benutzer sehen dasselbe wie Besucher | CachedViewPreferences[] oder den Schlüsseln fehlt, was sich unterscheidet |
| Nach einer Template-Änderung ändert sich nichts | der Template-Cache, dann der Inhalts-Cache, dann der Cache von Velocity |
Die Debug-Leiste zeigt, welche Caches für eine Seite verwendet wurden (Exp-Debug-Leiste).
Verwandte Seiten
- Leistung und Caching
- Caches
- Caching in Anwendungen
- Freie Dokumentation: Diese Seite darf unter der GNU FDL 1.3 frei kopiert, übersetzt und verbessert werden.
Werden Sie Exponential-Partner
Partner teilen ihre Informationen, stellen Mittel bereit, geben Beiträge zurück und entwickeln die Produkte mit uns, und so wächst Exponential. Eine Partner-Website und ein Dashboard sind für Mitte 2027 geplant: Werden Sie noch heute Partner, damit wir schneller wachsen und neue Funktionen früher liefern.