![]() |
Caching der Forenbeiträge
Guten Morgen,
ich habe ein Frage zum Forensystem der DP. Ich habe gehört, dass die Forenbeiträge hier nicht in der bbCode Form gespeichert werden, sondern erst in HTML umgewandelt und anschließend so gespeichert werden. Ich habe eventuell vor, das gleiche Prinzip auch auf mein selbst programmiertes Forum anzuwenden. Dabei stellt sich mir aber eine Frage: Wenn ein User einen Beitrag editieren will, dann editiert er ja auch den bbCode. Wird in der DP dann sowohl die HTML- als auch die bbCode Version gespeichert? Wäre das nicht etwas viel? Wie ist es dann gemacht? Freue mich auf eine Antwort! Mit freundlichen Grüßen, Valle |
Re: Caching der Forenbeiträge
In der Datenbank liegt der Beitrag als BBCode Text, wenn er dann angefordert wie wird geschaut ob es den Beitrag bereits im Cache (der Cache ist ein Ordner im Dateisystem) gibt und ob dieser Cache gültig ist, wenn das der Fall ist wird der Beitrag aus dem Cache gesendet wenn nicht wird er halt neu erstellt und im Cache gespeichert.
mfg, Björn |
Re: Caching der Forenbeiträge
Vielen Dank erstmal für deine Antwort. Man könnte also sagen, dass im Endeffekt doch alles 2 Mal abgespeichert wird. Wäre es sinnvoll, wenn ich den gerenderten Beitrag bei meinem Forum dann doch in die Datenbank abspeichere? Im Prinzip macht es ja doch keinen Unterschied, ob es in einer Datenbank oder in einer Datei gespeichert wird. Eine Frage noch. Was heißt "ob dieser Cache gültig ist"? Was ist denn ein ungültiger?
Mit freundlichen Grüßen, Valle |
Re: Caching der Forenbeiträge
Wenn ich mich recht entsinne, dann werden bei uns beide (HTML und BBCode) in der DB gespeichert. Der HTML Code verfällt, wenn der Beitrag (BBCode) sich ändert bzw. wenn dieser das letzte Mal vor 30 Tagen generiert wurde.
Da ganz alte Beiträge nur sehr selten abgefragt werden, könnte man also einen Cron-Job einrichten, welcher alle HTML-Caches älter als 50 Tage oder so einfach löscht. Dann wird die DB wieder etwas entrümpelt. Falls Du fragst, wieso nur 30 Tage gültig? Einfach, Smilies können sich ändern, Implementierungen einiger BBCodes, etc. Würde man den Cache nicht verfallen lassen, so würden die alten, evtl. fehlerhaften, auf immer und ewig ausliefern ;) ...:cat:... |
Re: Caching der Forenbeiträge
Zitat:
Zitat:
Edit: @Sakura: Es gibt hier noch zahlreiche Beiträge, die die DP-Weihnachtssmilies beinhalten. Daher denke ich, läuft der Cache nie ab. Edit 2: ![]() |
Re: Caching der Forenbeiträge
Zitat:
Und ja irgendwo wird immer etwas doppelt gespeichert. mfg, Björn |
Re: Caching der Forenbeiträge
Zitat:
...:cat:... |
Re: Caching der Forenbeiträge
Zitat:
|
Re: Caching der Forenbeiträge
Wer sagt denn, dass die Weihnachtssmileys bedeuten, dass der Cache niemals abläuft? Wäre ja gleich doppelte Speicherplatzverbrauch^^.
Ohne mich mit der Materie allzugut auszukennen würde ich doch vermuten, dass der Cache (der ja in erster Linie häufige Zugriffe abfangen soll, damit die Seite nicht jedes Mal frisch generiert werden muss), ein gewisses Verfallsdatum hat ... Dass die Weihnachtssmileys noch vorhanden sind, führe ich auf eine entsprechende Implementierung zurück ... man kann ja auf den Time-Stamp zurückgreifen, oder, oder ... mfG Markus |
Re: Caching der Forenbeiträge
Zitat:
Edit: Rund den doppelten Speicherplatzverbrauch hat man beim Cachen sowieso. Nur den Cache zu laden geht schneller, als die Beiträge jedesmal neu zu parsen. |
Re: Caching der Forenbeiträge
Doppelte Widerspruch:
Zitat:
![]() Zitat:
mfG Markus |
Re: Caching der Forenbeiträge
Hi, ich verstehe nicht, was du meinst. :gruebel:
Zitat:
Falls ich dich falsch verstehe, bitte aufklären. ;) Wie man das umgehen kann, also mit dem extra Timestamp beispielsweise, habe ich ja bereits genannt, doch dies ist hier vermutlich nicht der Fall. Zitat:
Sicher können dir das jedoch nur 2 Leute beantworten: [user]Gérome[/user] und Daniel. |
Re: Caching der Forenbeiträge
Naja, mein Gedankengang war ganz einfach:
Vermutung a) Die Smileys sind statisch, ob in einem emulierten Filesystem oder in einer echten Struktur sei mal dahingestellt. Vermutung b) Ein Cacheeintrag verfällt alle X-Tage Schlussfolgerung: Der Cache bleibt schön schlank, die Smileys sind immer vorhanden, soll der Parser einen Beitrag, der nicht im Cache ist, abrufen, schaut er auf das Datum und ersetzt dann den Smileycode entweder durch einen Normalen oder eben einen Weihnachts-Smiley. So bleiben gewünschte Smileys konsistent, während andere Smileys geupdated werden können ... und da die Smileys ja nicht im HTML-Code eingebettet sind, hat für mich der Beitrag erst mal nichts mit dem Code zu tun ... wäre ja ein Wahnsinnsaufwand, jeden Smiley in jedem Beitrag einzubetten ... mfG Markus |
Re: Caching der Forenbeiträge
Zitat:
Zitat:
Doch wie gesagt, ein Cache-Timeout scheint es nicht zu geben. Zitat:
|
Re: Caching der Forenbeiträge
@markusj & Matze: Was Ihr beide da schreibt, ist beides möglich. Wie es letztenendes funktioniert, kann Euch wohl nur Daniel verraten. Die Diskussion, in die Ihr Euch gerade verrennt, klährt jedenfalls nicht die Ausgangsfrage.
Gruß Thomas |
Re: Caching der Forenbeiträge
Ihr denkt alle viel zu kompliziert. *g*
Das Zeuch (die Beiträge) werden direkt nach dem Absenden mit ihren BBCodes in der Datenbank gespeichert, ganz so wie das phpBB vom Haus aus macht. Bei Abrufen eines Beitrages wird geprüft, ob es für ihn bereits einen Cache-Eintrag gibt. Wenn ja, dann wird dieser herangezogen, andernfalls wird der BBCode geparst, in HTML-Darstellung gebracht und als solcher komprimiert in der Datenbank hinterlegt. HTML-Code lässt sich hervorragend komprimieren, so dass sich da sehr viel Platz sparen lässt. Es wird gegenwärtig in der Tat ein Zeitstempel mitgeführt, so dass sich für jeden Eintrag im Cache das Alter bestimmen lässt. Im Moment werden dadurch jedoch keine Aktionen veranlasst. |
Re: Caching der Forenbeiträge
So in der Art hatten wir es ja zusammengetragen, nur dass es zusätzlich komprimiert wird, wusste ich nicht. :)
Zitat:
Zitat:
|
Re: Caching der Forenbeiträge
Danke euch allen!
Ich erlaube mir die Idee mal zu kopieren... :duck: :twisted: Mit freundlichen Grüßen, Valle |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz