AllesMeins: Seiten Cachen - Macht das Sinn?

Beitrag lesen

Hi,

Abgesehen davon: Ein Cache, den man nur manuell durch Löschen seiner Inhalte zur Aktualisierung bewegen kann, klingt in meinen Ohren nicht so Klasse.

Wer redet von manuellem löschen?

Dann sind Änderungen in der Navigation also Designänderungen? Oder verlinkst du nicht?

Es sind zwar keine Design-Änderungen, aber es sind Änderungen die in die kategorie "b" fallen. Wird aber nicht oft vorkommen.

Hätte ich bei jedem einzelnen Element erst feststellen wollen, ob und wann es geändert wurde, ob dieses Datum neuer ist als das der bereits bestehenden Seite, und ob deshalb eine Neugenerierung erfolgen muß, hätte ich zwar viel Zeit beim Generieren eingespart, aber deutlich mehr Zeit beim Ermitteln der Daten verbraucht.

Klingt für mich eher nach magelnden Definitionen worauf sich Änderungen beziehen. Abgesehen davon würde ich sagen, das du einfach falsch rum denkst. Es ist nicht die Aufgabe des Systems bei jedem Abruf auf komplizierte Weise zu ermitteln ob was geändert wurde, sondern es sollte andersrum sein: Nämlich das ändernde System markiert (in irgend einer Form) die geänderten Seiten und erzwingt damit eine seitenweise neuberechnung, wenn eine solche Seite abgerufen werden soll. Alles andere ist meiner Meinung nach Unsinn.

Abgesehen davon hatte das System diverse Nebenbedingungen, die ich erfüllen mußte: IIS, ASP, kein Rewriting, alte existierende URLs auf ".html" usw.

Gut, das ist ein Problem deiner speziellen Situation aber kein Problem des allgemeinen Konzeptes.

Nein, nicht wirklich. Ich habe verglichen, was an relevantem Unterschied passiert. So oder so muß eine PHP-Datei geöffnet und geparst werden. Entweder mit dem statischen und dynamischen Content, oder mit deinem Cachecode.

Ja, aber bei deiner Lösung ist der zu parsende Code deutlich länger und komplexer. Das Cache-System selber wäre wahrscheinlich in ner Hand voll Zeilen zu realisieren.

den Dynamic-Teil durch eval() zu jagen

eval() ist böse! Wer macht denn sowas?

Stimmt alles, aber deine Cache-Version wird ja wohl auch kaum um Includes herumkommen. Das dürfte also kaum einen Unterschied machen.

Eben doch. Bzw. mit deutlich weniger auskommen da ja Teile der Programmlogik, die bei der simplen Version jedesmal ein include() und das einlesen einer Datenquelle erfordern würden, gar nicht mehr gebraucht werden sondern durch statische Ausgaben ersetzt wurden.

Sofern die Dynamik erfordert, Kontakt zu einer Datenbank aufzunehmen, läßt sich das kaum wegrationalisieren.

Erfordert sie aber nicht zwangsweise.

Funktioniert aber auch nur, wenn die Datenbank auf dem selben Rechner rödelt...

Nein. Datenbanken haben immer Caches, und der Ort ihrer Werkels hat auf dessen Inhalt keinen Einfluß.

Ja, das ist schon klar. Ich meinte damit das dann die eigentliche Abfrage nicht mehr der potentielle Engpass ist sondern das zurückliefern der abgefragten Daten. Dann fallen Datenbankabfragen noch weit deutlicher ins Gewicht und der DB-Cache hilft da auch nichts, sondern nur das Vermeiden der Abfragen.

Bis auf so Dinge wie Änderung von Navigation etc., die seitenübergreifend wirken. Da muß doch nur eine einzige Seite neu dazu kommen oder gelöscht werden, und schon kann auf der gesamten Site ein Link ungültig werden. Und sowas ist in aller Regel auch in den Bearbeitungsmöglichkeiten der Redakteure.

In meinem Fall aber nicht ;)

Marc