Auf der Bahnfahrt heute dachte ich mir, ein einfaches Voll-HTML-Caching Plugin für
Serendipity sollte doch etwas nettes sein.
Das Plugin soll eigentlich nur jede Seite anhand der URL cachen, etwaige GET- und COOKIE-Parameter miteinbeziehen und den Cache bei neuen Kommentaren/Einträgen automatisch purgen und danach beim ersten Request neu erstellen. Ausserdem soll es jede Seite nach maximal 60 Minuten einmal erneut bauen. "Just in Case"-Kompilierung, sozusagen.
Genau das tut mein in 30-Minuten gebasteltes Proof-of-Concept Plugin
serendipity_event_cachesimple auch.
Es hat so einige gefährliche Gotchas: Man verliert die "Dynamik" der Seiten. Etwaige dynamische Sidebars, "Quote of the Second" usw. wird so natürlich alles am PHP-Parser vorbeigeschleust. Prinzipbedingt kann Vollseiten-Caching nicht anders funktionieren; einzige Alternative wäre ein modularer Cache. Der wiederrum enthält schon wieder so viel Code und Logik, dass er IMHO zuviel Entwicklungsaufwand für zu geringen Nutzen bietet. Dafür gibt es ja auch bereits das "Erweiterte Eigenschaften"-Plugin, welches jeden Artikeltext nur einmal parst und dann immer den Cache zur Hilfe zieht. Mühsame Smilie-Ersetzungen, BBCode usw. werden nur einmal umgeformt, und sparen so schon eine ganze Menge Performance.
Wer darauf verzichten kann, absolut dynamische Seiten zu haben und dessen Content sich nur selten dynamisch ändert, der dürfte an dem Plugin weitaus mehr Spaß haben und so etwas Slashdot-sicherer machen können.
Das Plugin ist derzeit noch nicht durchweg getestet. Ab nächster Woche werde ich es hier einmal in den Probebetrieb schicken um Probleme zu durchleuchten - dafür wird es dann auch hier etwas Einbußen geben an Dynamik, aber hoffentlich mehr Performance. Selbst das Click-Tracking sollte noch funktionieren, auch wenn die dargestellten Daten dann nur stündlich aktualisiert werden. Über eigene Tests und Weiterentwicklung des Plugins würde ich mich daher sehr freuen.
Wie bereits angekündigt ist jetzt hier ein experimentelles Plugin zu Gange. Das ganze erzeugt vollständige Caches der Seiten, die maximale 1 Stunde "haltbar" sind. Vorteil ist, dass alle Content-Seiten für mehrere Zugriffe hintereinander stark optimie
Aufgenommen: Apr 26, 10:56