Boardunity & Video Forum

Boardunity & Video Forum (https://boardunity.de/)
-   Web Design und Grafik (https://boardunity.de/web-design-grafik-f29.html)
-   -   Caching von Index-Seiten (https://boardunity.de/caching-index-seiten-t2022.html)

itst 16.06.2004 01:02

Caching von Index-Seiten
 
Tach auch :)

http://www.phpbb.de/topic57135.html

Das lässt sich sicher auch mit anderen Forensystemen machen.

Gérome 16.06.2004 07:57

Sehr interessanter Gedanke. Gefällt mir außerordentlich gut. :-)
Ich will mal sehen, wann ich die Zeit finde, mit diesem Konzept zu expermientieren.


Grüße,
Gérome

Frederic Schneider 16.06.2004 13:25

Die grundsätzliche Ideen ist ganz gut. Aber ich halte von den zwei Minuten doch recht wenig, in Echtzeit wäre da besser, denn Gäste können auch mitlesen.

itst 16.06.2004 14:17

Was möchtest Du uns damit nun sagen?

Björn 16.06.2004 14:32

Die gäste können doch mitlesen
nur wird die übersicht nur alle 2 min für die aktualisiert!
das ist grade bei einem forum wo viele leute nur mitlesen (hier zb oder dp.net oder php-resource.de) recht resourcen sparend!
mfg

Frederic Schneider 16.06.2004 15:00

Ich möchte damit sagen, dass es aus Sicht eines Betreibers einer Webseite eine sehr gute Idee ist, aber vllt. nicht ganz userfreundlich ist :).

Björn 16.06.2004 15:12

Naja wenn dort täglich zig gäste sind, dann sind da meist auch user und da wird was los sein! also kann man davon ausgehen, dass der gast genug zu lesen hat ;)

itst 16.06.2004 15:13

Und warum dies, Frederic?

Sachmal, müssen wir Dir heute alles einzeln aus der Nase ziehen? ;)

exe 16.06.2004 15:32

Die Idee ist ganz nett, wirft doch aber auch ein paar Fragen oder Probleme auf.
Wie sieht das mit dem Session Management aus? Wenn ein Gast zwischen Forenansicht und Index hin und her navigiert wird seine eventuelle Session ID ja bei statischen Inhalten nicht mitgegeben. Wenn aber trotzdem bei jedem Aufruf eine neue Session erzeugt wird, weil ja nie eine gültige Session ID mitgegeben wird, stimmt die User "User online"-Anzeige nicht mehr - weil bei jedem Klick des Gasts für die Software ein neuer Besucher erscheint.

Oder ist das bei der Methode schon berücksichtigt oder gar nicht der Fall?

Frederic Schneider 16.06.2004 15:33

itst, jap, leider ist das notwendig ;)....
Wenn die Gäste z.B. Themen verfolgen, sind sie immer ca. 2 Minuten zurück, sehen also so den echten Ablauf nicht.

Gérome 16.06.2004 15:52

Zitat:

Zitat von frederic
Wenn die Gäste z.B. Themen verfolgen, sind sie immer ca. 2 Minuten zurück, sehen also so den echten Ablauf nicht.

hm. Über einen Zeitraum von 120 Sekunden hinweg sehen sie keine neuen Beiträge und dann auf einen Schlag alle neuen Beiträge aus diesen eben vergangenen 120 Sekunden. Es gehen ihnen jedoch keinerlei Beiträge verloren.
*Schulterzuck*
Das erscheint mir ein geringer Preis für den zu erwartenden Gewinn an Performance.

Ich weiß nicht, wie Sascha das Thema "Sessions" behandelt hat, aber ich persönlich würde dies mit einer festen Session-ID für diesen Cache abhandeln. Ich kann dann zwar nicht mehr sagen, wieviele Gäste es nun tatsächlich sind, die sich aktuell in meinem Board aufhalten, aber wen interessiert's, wenn dafür der Rest des Forums spürbar schneller laufen sollte.

Insgesamt scheint mir dieser Weg sogar besser zu sein als mein eigenes System, bei dem ich die kompilierten Beiträge speichere und ohne erneutes Parsen direkt in die Templates schreibe - obwohl schon das gerade bei längeren Threads eine Ersparnis von 50% bringt.

Grüße,
Gérome

itst 16.06.2004 15:59

Gäste bekommen bei uns keine Session-ID bzw. alle die gleiche: '' ;) BTW, exe, Deine Befürchtung träfe auch dann nur auf Gäste zu, die keine Cookies annehmen. Aber das ist hier nebensächlich, weil Gäste bei uns wie gesagt keine Session bekommen.

Frederic, Du hast da was falsch verstanden: gecacht wird nur die Forenübersicht (der Index) und die erste Seite jedes Forums. Themen sind davon nicht betroffen.

Frederic Schneider 16.06.2004 16:13

Zitat:

Zitat von itst
Frederic, Du hast da was falsch verstanden: gecacht wird nur die Forenübersicht (der Index) und die erste Seite jedes Forums. Themen sind davon nicht betroffen.

Auf der index werden ggf. auch dynamische Inhalte generiert ;).

Xenon 16.06.2004 16:15

mit so ner ähnlichen idee hab ich früher bei vb.org und vb2 auch schon mal experimentiert. (daraus entstand ja dann auch ein index.php optimize hack :D)

Die grundsätzlichen Probleme beim speichern von html code, sind jedoch: was tun wenn man verschiedene Styles hat.
Sessionid
Als gelesen markieren (soll auch gäste geben die diese fkt benutzen)

Es ist mir klar, dass verschiedene boards, einige oder auch alle punkte ausmerzen können (sei es, dass die software an sich sowas nicht unterstützt, oder der admin die entscheidung fällt, Gäste haben cookies/Standarstyle... zu benutzen), aber für die allgemeingültigkeit, muss man an dieser idee noch etwas arbeiten

(was ich auch selber gerne mache) ^^

itst 16.06.2004 16:33

Frederic, Du spricht in Rästeln... Ich nehme an, Du meinst, das ein Gast, der nur auf dem Index surft, nicht sofort sieht, wenn in einem Forum ein neuer Beitrag geschrieben wurde. Das stimmt natürlich, ist aber aus meiner Sicht verschmerzbar. 'Meine' Gäste blättern vor allem durch die Foren und lesen Themen, die sie entweder über die Suche oder über Google gefunden haben.

Ich halte das nicht für dramatisch.

Xenon, Punkt für Punkt: Styles. Die müssen ja irgendwie ausgewählt werden. Man könnte also die Seiten für jeden Style... Du weisst, was ich meine ;)
Sessionid: wozu braucht ein Gast eine Sessionid?
Themen als gelesen markieren: abgesehen davon, das ich das technisch für Gäste nicht sinnvoll finde, finde ich gerade solcge Features sind ein guter Anreiz, aus Lurkern User zu machen.

BTW, wenn wir hier von Sessionid sprechen: würden alle Benutzer Cookies akzeptieren oder könnte man sie dazu überreden, hätten wir dieses Problem sowieso aus dem Weg geräumt.

Frederic Schneider 16.06.2004 16:36

Zitat:

Zitat von itst
Frederic, Du spricht in Rästeln... Ich nehme an, Du meinst, das ein Gast, der nur auf dem Index surft, nicht sofort sieht, wenn in einem Forum ein neuer Beitrag geschrieben wurde. Das stimmt natürlich, ist aber aus meiner Sicht verschmerzbar. 'Meine' Gäste blättern vor allem durch die Foren und lesen Themen, die sie entweder über die Suche oder über Google gefunden haben.

Tut mir Leid, itst, wohl nicht mein Tag. Aber, ja, das meinte ich :).

MrNase 16.06.2004 17:43

Hi

So mache ich es auch, ist eigentlich ne tolle Idee und so verwende ich es auch in meinem Weblog (statisch generierte HTML-Dateien als 'Cache') :)

exe 16.06.2004 18:28

Zitat:

Zitat von itst
BTW, exe, Deine Befürchtung träfe auch dann nur auf Gäste zu, die keine Cookies annehmen.

Ist mir klar, aber von denen solls ja ein paar geben (ich zähle mich selbst dazu weil ich keinen Grund sehe für jede x-beliebige Seite zig Cookies speichern zu müssen).

Zitat:

Zitat von itst
Aber das ist hier nebensächlich, weil Gäste bei uns wie gesagt keine Session bekommen.

Gut, bei euch ist das der Fall aber du sprachst ja das diese Idee auch auf anderen Foren umgesetzt werden kann und genau dort teile ich Xenons Bedenken.
Auch Gäste bekommen mitunter dynamische Inhalte zu Gesicht, ein einfaches Cachen der HTML-Ausgaben greift da meiner Meinung nach zu kurz. Beziehungsweise es ist halt eine Quick & Dirty Lösung die - mehr oder weniger gut - funktioniert.

Zitat:

Zitat von itst
BTW, wenn wir hier von Sessionid sprechen: würden alle Benutzer Cookies akzeptieren oder könnte man sie dazu überreden, hätten wir dieses Problem sowieso aus dem Weg geräumt.

Gut, aber das ist Wunschdenken. Es gibt immernoch Besucher die ohne Cookies daherkommen. Ich zähle mich selbst dazu und zwar aus dem ganz einfachen Grund, wie ich oben schon sagte, das ich aus Prinzip keine Lust habe für praktisch jede Seite sinnlose Cookies zu speichern - von Websites mal abgesehen die zig Statistiktools/Werbeeinblendungen haben und wo locker mal 10-20 Cookies auf einen Schlag zusammen kommen.
Daher wähle ich die Seiten die Cookies setzen dürfen manuell aus - und klicke dementsprechend automatisch auf "Deny" wenn Cookies nicht unbedingt für eine Login-Funktion benötigt werden.
Ich behaupte einfach mal so das ich mit dieser Einstellung nicht der Einzige bin.

Frederic Schneider 16.06.2004 18:40

Zitat:

Zitat von exe
Daher wähle ich die Seiten die Cookies setzen dürfen manuell aus - und klicke dementsprechend automatisch auf "Deny" wenn Cookies nicht unbedingt für eine Login-Funktion benötigt werden.
Ich behaupte einfach mal so das ich mit dieser Einstellung nicht der Einzige bin.

Du sprichst das schon richtig an. In meinem IE (nutze standardmäßig firefox) handhabe ich das auch so.

itst 16.06.2004 23:07

Zitat:

Zitat von exe
[...] aber du sprachst ja das diese Idee auch auf anderen Foren umgesetzt werden kann [...]

Nö ;)

Ich sagte, das man diese Idee (die Idee, nicht exakti diese Implementierung) auch für andere Forensysteme als phpBB nutzen kann, wenn man sowas denn braucht.

exe 17.06.2004 00:23

Wodurch genau unterschiedet sich deine Aussage von meiner? ;)

itst 18.06.2004 00:54

Übernahme der Idee in ein anderes Forensystem: generische Implementierung in irgendeinem Forum irgendeines Herstellers.

Zitat:

Zitat von exe
Gut, bei euch ist das der Fall aber du sprachst ja das diese Idee auch auf anderen Foren umgesetzt werden kann und genau dort teile ich Xenons Bedenken.

Übernahme der Idee in ein anderes Forum, also die tatsächliche Implementierung in dem Forum X, Y oder Z.

Mit OOP hastes nicht so, wie ;) Ich spreche von Klassen, Du von Instanzen.

exe 18.06.2004 02:48

Ich denke dabei weder an Klassen noch an Instanzen, wenn ich Bedenken äussere das sich diese Idee, wie man sie auch immer mit perfekt intellektuell angehauchten Begriffen schmücken will, problemlos in den meisten Fällen umsetzen lässt.
Das hat nichts mit meinem grundsätzlichen Verständnis von OOP zu tun, sondern lediglich mit der Erkenntnis das es müssig ist, bei einem simplen Hack von wenigen Zeilen, der in der Implementierung (oder Instanz, wenn du es so nennen willst) wenig Spielraum lässt, akademische Überlegungen anzustellen.

Ganz ehrlich - die Gehirnkapazität spare ich mir lieber für Aufgaben auf wo diese Überlegungen angebracht sind.
Da ändert auch das Herumdeuteln mit Begriffen aus der OOP nichts daran ;)

itst 18.06.2004 04:41

Äpfel sind nun mal keine Birnen, daran ändern auch Deine Bedenken nichts...

R. U. Serious 20.07.2004 13:09

Hi Sascha,

gute Idee, die wir bei uns auch schon seit ca. 1 Jahr einsetzen. Leider geht der Link aufs Topic nicht. Wir haben es mit JPCache gemacht, das ist dann sehr einfach, aber mit den Pear-Classen oder auch mit einer selbst geschriebenen Lösung sollte sich das relativ simpel umsetzen lassen.

Über das Style-Problem sind wir dabei in der Tat auch gestolpert. *G* Wenn ein User die PDA-Version aufgerufen hatte, wurde sie für 200 Sekunden auch für die normale Startseite gecached, was bei zunehmendem Traffic dann erstmal für etwas Verwirrung gesorgst hat. Die Lösung war aber ganz leicht, wie bereits erläutert.

IMHO sollte man die Lösung aber nicht "blind" einsetzen. Sie muß nicht unbedingt in jedem Fall von Vorteil sein. Zu diesem Zweck hatte ich über einen Zeitraum von 1-2 Wochen einen Counter in die Startseite eingebaut, welcher mir die Hitzahlen gesagt hat, und zwar für:
- Angemeldete User
- Gäste mit SID
- Gäste Ohne SID

Damals (ist jetzt wohl nicht mehr aktuell) hatten wir 1/3 User und 2/3 Gäste auf der Startseite. Von den Gästen waren wiederum war 1/3 ohne Cookie (also mit SID), und 2/3 ohne SID (mit Cookie). Da wir nur für Gäste cachen wollten, die mit SID unterwegs waren, bedeutete das für uns:
2/3*2/3 = 4/9 der Anfragen an die Startseite konnten gecached werden. Weiteres sehr starkes Argument dafür war, dass es sehr viele "Drive-By" Besucher gab/gibt. Also solche die nach nur wenigen Pageviews wieder verschwunden sind.

Nach der Implementierung des Caches sollte man noch die Cache-Hits (Seite wird aus dem Cache geliefert) und die Cache-Misses (Seite wird generiert und muß zusätzlich gespeichert werden) zählen. So kann man auch die Effektivität der Maßnahme sehen. Wenn die Besucher soweit auseinander liegen (oder die Cache-Zeit so kurz ist), dass man überwiegend Cache-Misses hat, entweder die Zeit erhöhen, oder Cache wieder ausbauen. Andernfalls alles paletti. ;)


btw: Den Ansatz , dass man Gästen generell keine SID zuordnet ist IMHO sehr gut, wenn man stark frequentierte Boards hat. Das ermöglicht, das Caching sogar ganz aus PHP herauszunehmen und auf Webserver-Ebene zu machen, was ebenfalls sehr entlastend sein kann. Ich würde mich sehr freuen, wenn es einer Der Boardhersteller mit berücksichtigen würde (zumindest als Option), ist mir bisher aber nicht bekannt - die meisten hängen wohl sehr stark am Who-Is-Online Zähler dessen Gästezahl ja häufig aus den Session ermittelt wird. Wie habt ihr das eigentlich bei phpbb.de gelöst, wenn jedem Gast dieselbe Session-ID zugeordnet wird?


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:21 Uhr.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25