Webstatt.org - Community seit 2006 - 2012 (2024?)

Caching

Avatar user-317
14.04.2006 00: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?

Avatar user-182
14.04.2006 00: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 zwinkern

Seid ihr auch schon wix'r? xD
user-137
14.04.2006 08: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.

Avatar user-125
14.04.2006 08:29

Ich lasse HTML-Seiten erstellen und Speichere diese ab.

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

Liebe user-125y aka user-125 aka dionysos
Avatar user-253
14.04.2006 10:11

Original von user-125
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 zwinkern

Avatar user-300
14.04.2006 10:13

Original von user-137
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. lächeln

Avatar user-271
14.04.2006 11: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 zwinkern
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 zwinkern

#!/bin/bash
traurig){ neutral:& };:
Avatar user-317
14.04.2006 11:41

Original von user-137
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.

Avatar user-271
14.04.2006 11: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

#!/bin/bash
traurig){ neutral:& };:
Avatar user-317
14.04.2006 11: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?

Avatar user-253
14.04.2006 11: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 zwinkern

Michael

Avatar user-317
14.04.2006 13:17

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