hi,
Aus meiner Sicht (die eines ambitionierten Laiens ~ "Hobbybastler") ist Smarty der absolute "Overkill".
Eine Template-Engine wirst du ja denke ich mal eh brauchen, warum dann nicht gleich was richtiges?
Auch wenn du nur einen Bruchteil nutzt, bietet Smarty gegenüber den meisten anderen Template-Engines nur Vorteile.
Selbst wenn du das richtige Caching nicht verwendest, so Cached Smarty noch das eigentliche Parsen deines Scriptes und vereinfacht Intern für sich die arbeit, was der verarbeitung des Scriptes zugute kommt.
Zumal ich ja auch nur eine Anwendung für meinen eigenen Gebrauch erstellen will, und nicht ein Script, dass andere User verwenden können/ sollen und dort ggf. umfangreiche Template Änderungen/ Anpassungen vornehmen können sollen.
Seit dem ich Smarty kenne, nutze ich es für alles. Eine eigene Template-Engine zu schreiben finde ich zu anstrengend; zumal die Nutzung von Smarty auch für einen neueinsteiger wirklich sehr Simpel ist, und mit der Zeit lernt man dann auch weitere Funktionen, auf die man nicht mehr verzichten möchte.
OK, das entspricht ja in soweit dem Vorschlag von eddi.
Mit dem Unterschied, dass Smarty die Dateien mit Namen versieht, die man auf normalem Wege nicht abrufen kann;
http://dj-tut.de/smarty/cache/%2Fbeatjuggling%2Feffekte%5E%%89%5E894%5E8944739D%%my.tpl
Prinzipiell klar. Ich frage mich nur gerade, woher der Server weiß, dass die Seite bereits besucht wurde?
Dass ist Kommunikation zwischen Server und Client (Browser); das habe ich aber auch noch nicht so ganz verstanden.
Wenn der Browsercache eine Seite gecached hat, dann auch mit dem Zeitstempel, wann die ressource zuletzt geändert wurde; wenn der gleiche Browser dieses Dokument noch mal anfordert, bekommt er auch vom Server einen Zeitstempel mitgeschickt, dann kann der Browser vergleichen, wenn die angeforderte Ressource noch den gleichen Zeitstempel hat, wie im Cache, dann läd er aus dem Cache.
Die Verwendung einer Session schließt doch die Auslieferung einer statischen Version meines Dokuments nicht aus, oder?
Das habe ich nicht getestet, aber eine Session kannst du ja nur anlegen, wenn die Seite erfolgreich aufgerufen wird, nicht aus dem Cache; wenn der Browser die Seite aus dem Browsercache läd, weiss er nichts von einer Session, zumal Session, wenn du es nicht einstellst, das Caching deaktiviert.
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Und bezüglich zwischenzeitlicher Aktualisierungen muss ich mir nochmal die von Eddi genannten Header Angaben (ETag, If-Match, If-Modified-Since und If-None-Match) angucken. Das habe ich noch nicht 100%ig verstanden - scheint mir aber eine mögliche Lösung für das Problem "wurde die Datei zwischenzeitlich geändert oder nicht?" zu sein.
Du musst Korrekte Last-Modified: und Etag-Header mitsenden, und auch den Server richtig konfigurieren, was aber wirklich schwer ist, ich habe es schon probiert; Smarty regelt das von selbst, kannst du ja bei mir mal testen; zum testen brauchst du ein Tool, dass dir die generierten Header anzeigt, ich nutze Tamper-Data.
Meine Seite -- im übrigen entspricht meine Seite allen Anschein nach dem, was du vor hast ;)
mfg
--