In den vorangegangenen Lektionen haben wir damit begonnen, einige Templates zu basteln. Unsere Website verspricht ein überwältigender Erfolg zu werden. Lassen Sie uns nun einen Moment innehalten und an die Nerven unseres armen Computers denken. In dieser Lektion erfahren Sie weder amüsante noch essentielle Dinge. Sie können die Gelegenheit auch zu einem Nickerchen nutzen... [1]
Zusammenfassung für Eilige:
Fügen Sie im Skelett
tutorial.html
den Eintrag
#CACHE=3600
als erste Zeile ein .
...
Wenn eine Seite von SPIP angefordert wird, schaut es zuerst nach, ob es diese Seite schon einmal erzeugt hat. Wenn die angeforderte URL
http://meine_site.net/spip.php?page=tutorial&id_article=12
ist, schaut SPIP in sein CACHE/
-Unterverzeichnis, um festzustellen, ob die Datei existiert; falls ja, vergleicht es das Alter der Datei mit dem Wert, der für #CACHE
spezifiziert wurde.
In unserem Beispiel hatten wir #CACHE=0
festgelegt, was jedesmal eine systematische Neuerzeugung der Seite bewirkt, wenn sie aufgerufen wird. Lassen Sie uns das zu #CACHE=3600
ändern (die Zeit wird in Sekunden angegeben).
Damit wird unsere Seite nur neu erzeugt, wenn ein Besucher sie anfordert und die gecachte Version älter als eine Stunde (d.h. 3600 Sekunden) ist. Ist sie das nicht, liest SPIP einfach den Inhalt der gecachten Datei und gibt das Ergebnis zurück, ohne mit der Datenbank Kontakt aufzunehmen (abgesehen davon, daß ein Zugriff in die Statistik eingetragen wird).
Wie sollte der Timeout-Wert #CACHE
eingestellt werden,
um die Leistung des Servers zu optimieren? Es gibt keine Patentlösung, aber stellen Sie ohne weiteres einen Delay-Wert von einem Tag (d.h. #CACHE=24*3600
) oder mehr für Artikel und Rubriken ein. Die wichtigsten Navigationsseiten können eine kürzeren #CACHE
Wert haben (beispielsweise 20 Minuten oder eine Stunde), wenn Ihre Site auf häufige Veröffentlichung neuer Inhalte und syndizierter Seiten reagieren soll. Wenn Sie sich Ihren Server mit anderen Benutzern teilen, denken Sie auch an diese und stellen Sie keinen kurzen Delay für Seiten ein, die sich selten ändern: dies verriete einen Mangel an Feingefühl, da bei den umfangreichen Artikeln oder Übersichten die Erzeugung von Seiten einige Sekunden dauern kann, was dann nur den Zugriff auf Ihre Seiten verlangsamt.
Wie kann eine Aktualisierung erzwungen werden?
Wir haben soeben beschlossen, auf einer Seite eine extrem lange #CACHE-Zeit
einzustellen, und dann finden wir einen Rechtschreibfehler. Wie stellen wir es an, diesen Fehler, nachdem wir ihn im privaten Bereich berichtigt haben, sofort von der öffentlichen Site zu entfernen?
- Klicken wir aus dem privaten Bereich
(«Redaktion» → «Artikel» → betreffender Artikel bzw. «Redaktion» → «Rubriken» → betreffende Rubrik)
auf den mit einem Lupen-Symbol markierten Button «Online ansehen». Damit lösen wir die Neuerzeugung der Seite nach Maßgabe der
#URL_ARTICLE
des betreffenden Artikels bzw. der #URL_RUBRIQUE
der betreffenden Rubrik aus. Dies ist die üblichste Methode der Aktualisierung.
- Im Abschnitt «Konfiguration → Sitecache löschen» des privaten Bereichs löscht der Button «Cache leeren» alle gecacheten Dateien. Dies ist nützlich, wenn Sie substantielle Modifikationen durchgeführt und eine sehr komplexe Site haben; anderenfalls vermeiden Sie es lieber.
- Eine weitere einfache Methode ist die Benutzung des Buttons «Seite aus Cache löschen», der für Administratoren auf der öffentlichen Seite zur Verfügung steht. Dieser Button ist nur dann zu sehen, wenn Sie vorher dem privaten Bereich von derselben Maschine aus einen Besuch abgestattet haben - dadurch wird ein Cookie auf Ihre Maschine geschrieben, das Sie identifiziert.
Zurück zum Kontext: Wir kehren an dieser Stelle zur Konzeption des Kontexts zurück. Wenn das Template mit einem Kontext von id_article
,
id_rubrique
oder id_breve
aufgerufen wird, ist ein weiterer Button für Sie sichtbar, wenn SPIP das Verwaltungs-Cookie entdeckt. Seine Bezeichnung ist «Artikel (bzw. Rubrik oder Meldung) bearbeiten»; er führt Sie direkt zu der korrespondierenden Seite im privaten Bereich, wo Sie den Artikel editieren können.
Letzte Details:
- Aus einleuchtenden Gründen bewirkt die Suchmaschine keine Aktualisierung des Cache, und die Forum-Seiten werden aktualisiert, sobald ein neuer Beitrag übermittelt wird.
- Das CACHE
-Verzeichnis der Site ist in 16 numerierte Unterverzeichnisse aufgeteilt (0, 1, 2, ... 9 und A, B, ... F), in denen die gecacheten Dateien zufällig verteilt sind; dies nennt man «den Cache-Hash», und es wird hier nur der Vollständigkeit halber erwähnt.
- Die gecachten Dateien werden auch verwendet, wenn die Datenbank nicht arbeitet (weil sie beispielsweise
«abgestürzt» ist); das garantiert, daß die Site auch während eines Ausfalls des MySQL-Servers erreichbar bleibt. [2]