Willkommen in der Webstatt Zum Webstatt Blog und Stories
Sven Sven am 14.04.06 02:20

Huhu,
möchte hier mal ne grundsätzliche Diskussion zum Thema caching mit PHP vom Zaun brechen. Wer von euch cacht, wo findet ihr caching sinnvoll und wie cacht ihr?

Ich z.b habe mir überlegt, einfach die komplette Ausgabeseite zu cachen und nicht nur einzelne Modul-Ausgaben. Wie macht ihr das?

netcup.de Warum gibt es hier Werbung?
Franky Franky am 14.04.06 02:24

Naja bei großen Seiten vll. sehr sinnvoll, aber hast du echt eine soo große Seite?
Guck dir hier das Forum an: Sogar das Archiv wo die ganzen Bots drin sind wird bei jedem aufruf neu von der Datenbank geholt ;)

BNightSpeeder am 14.04.06 10:21

Also ich werde es bei meiner Seite mit den Bildern machen die als Roll-Over fungieren, sonst - beim ersten neuladen bei webstatt - dauert es eine Zeit bis der Roll-Over in kraft tifft.

bastey bastey am 14.04.06 10:29

Ich lasse HTML-Seiten erstellen und Speichere diese ab.

Das mache ich vorallem bei Inhalten (ContentSeiten) und Gästebuch.

Michael Michael am 14.04.06 12:11

Quote
Original von Dionysos
Ich lasse HTML-Seiten erstellen und Speichere diese ab.


Das ist allgemein auch die Methode meiner Wahl. Leider ist dies für höchst dynamische Seite recht umständlich (beispielsweise für das Sessionhandling oder Inhalte, die sich sehr oft verändern - hier müssten die statischen Seiten ja äußerst oft generiert werden). Bei diesen Seiten verzichte ich meisst auf einen Cache. Professionellerweise könnte man Teile auch direkt in den Apache laden.

Für die Umwandlung benutze ich XML und XSLT.

// edit

Je mehr Ideen gepostet werden desto besser, da die Umsetzung des Cahchingsystems des CMSs noch nicht wirklich ausgereift ist ;)

sili sili am 14.04.06 12:13

Quote
Original von BNightSpeeder
Also ich werde es bei meiner Seite mit den Bildern machen die als Roll-Over fungieren, sonst - beim ersten neuladen bei webstatt - dauert es eine Zeit bis der Roll-Over in kraft tifft.


Mach das besser ganz per CSS. Damit hast du einen Rollover ohne Zeitverzögerung.
Ich cache meine Seite selbstverständlich nicht, sie ist viel zu klein dafür. :)

nuit nuit am 14.04.06 13:25

alsooo...wir machen das bei der neuen HC seiten gaaanz anders...geht aber nur wenn dir ein Server gehört.

es gibt module, die übernehmen das für dich, die Speichern sich die ausgeführten scripts bis zu einem gewissen grad...so muss man kucken, ob die gecachden dateien auch von den Teimstamps noch passen...das wird aber nicht von php abgefragt, weil sonst koennte man gleich die seiten neu generieren...dazu läuft im hintergrund ein C script. was man aufrufen kann und das C script liefert nur einen Timestamp ;)
je nachdem ob er Timtestamp älter oder neuer ist, wird die datei neu gecached

sooo, sollte das laufen ;D mit php cachen tu ich generell nicht...du must ja trotzdem die neuheit prüfen, und dazu musst du ja einen MySql ausführen, und ob des dann noch soo langsam ist...vielleicht bei vieeeeel content ;)

Sven Sven am 14.04.06 13:41

Quote
Original von BNightSpeeder
Also ich werde es bei meiner Seite mit den Bildern machen die als Roll-Over fungieren, sonst - beim ersten neuladen bei webstatt - dauert es eine Zeit bis der Roll-Over in kraft tifft.

Darum ging es eher weniger.

Das Problem ist halt eben, das es auch auf zum Großteil statischen Seiten dynamische Elemente gibt. Nehmen wir mal als Beispiel irgendeine Clanseite. Auf der Startseite werden dann z.b neben dem Layout mit der Navigation News angezeigt. Nun können wir natürlich davon ausgehen, das neue News nicht so häufig gepostet. Aber bei einer stark frequentierten Seite schreiben User gerne Kommentare zu bestimmten News. Nehmen wir nun wieder an, auf der Startseite werden auch noch die Anzahl der Kommentare der jeweiligen News ausgegeben. Für diesen kleinen Zipfel die Ausgabe komplett neu zu cachen wäre etwas zu viel des guten. Also müsste da dann doch irgendwie wieder einwenig dynamik rein. Außerdem : Wie überprüft man am Effizientesten ob sich die Ausgabe geändert hat und somit ein neues cachen nötig ist?

Das mit den Servermodulen ist natürlich super, aber wie erwähnt : Man braucht einen eigenen Server.

nuit nuit am 14.04.06 13:44

ich würde sagen...timestamp...wenn du etwas neues hinzufügst einen timestamp zu verändern...und den timestamp auch in der Datei oder DB speichern ;D und dann weisst du ob sich was verändern, indem du die timestamp checkst...wass du auch machen kannst, ist bei jeder änderung, die dateien neu cachen...d.h. wenn du im admin bereich, was veränderst...dann wird das gleich gecached

Sven Sven am 14.04.06 13:46

Ok, wieder auf das Beispiel mit den Newskommentaren bezogen :
User schreibt kommentar, Ausgabe wird direkt gecacht.
Kann das nicht zu Schreibkonflikten kommen wenn mehrere User gleichzeitig Kommentare verfassen?

Michael Michael am 14.04.06 13:58

Du kannst die statischen Teile als temporäre Dateien erzeugen und dann per FTP "uploaden".
Klingt dumm aber ich mache das auch so.

Wenn du nur wirklich statische Teile cachen willst, kannst du die auch per SSI Include einbinden. Die Dateien müssten dann natürlich shtml sein ;)

Michael

Sven Sven am 14.04.06 15:17

Okay, schonmal viel Input von euch bekommen. Ich bedanke mich aufjedenfall schonmal ;)

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt