Seite 1 von 1

Caching funktioniert bei <we:object> nicht

Verfasst: Mo 1. Aug 2022, 12:51
von sharif2
Hallo,
hat jemand die Erfahrung mit dem Cachen von Objekten?
Das Problem ist dass Templates die Objekt tags (<we:object>) enthalten nicht gecacht werden. Ich weiß nicht ob das ein gewolltes Verhalten ist oder ob ich da etwas falsch mache. Aber wenn das so von den Programmierern von WE gewollt gibt es einen Weg die Templates mit Objekt tags trotzdem zu cachen?

Mein Template hat nichts besonderes in sich und sieht vom Aufbau ungefähr so aus:


Ich habe ein Haupttemplate z.B main.tmpl der den master template als master hat und hier inkludiere ich verschiedene Module ein die jeweils aus verschiedene Templates bestehen:

main.tmpl:

Code: Alles auswählen

<we:cache id="asdfasfd" ttl="324234234">
	<we:include type="template" id="123" />
</we:cache>
und das Modul Template mit der id 123 würde dann so aussehen:

Code: Alles auswählen

<we:object name="myObject" classid="1">
 .......
</we:object>
Alle andere Module die genauso in main.tmpl eingebunden und gecached werden, sind auch wirklich gecached aber sobald ich ein Modul mit Objekt Tags habe wird es nicht gecached.

Re: Caching funktioniert bei <we:object> nicht

Verfasst: Mo 1. Aug 2022, 21:14
von mokraemer
Also zunächst mal die Frage, wie du das denn festgestellt hast, das es nicht gecached wird?
Ich würde die Sinnhaftigkeit ein <we:object> zu cachen auch durchaus mal in Frage stellen. Denn eine DB Abfrage durch eine DB Anfrage zu beschleunigen dürfte recht wenig bringen. Ich hoffe auch, das du nicht wirklich überall die gleiche seltsame id verwendest. Und es letztendlich über das gleiche Template abbildest. Das könnte durchaus den einen oder anderen Effekt, der in der Doku beschrieben ist, erklären.

Re: Caching funktioniert bei <we:object> nicht

Verfasst: Di 2. Aug 2022, 10:30
von frog0815
Gibt es seitens webEdition denn eine Möglichkeit zu erkennen ob ein cache Tag funktioniert?

Manuell kann man es ja selbst testen indem man eine dynamische Ausgabe einbaut wie z.B. einen Timestamp. Wenn der Timestamp sich bei jedem Seitenaufruf ändert, dann funktioniert das Caching nicht.

Re: Caching funktioniert bei <we:object> nicht

Verfasst: Di 2. Aug 2022, 10:44
von sharif2
mokraemer hat geschrieben: Mo 1. Aug 2022, 21:14 Also zunächst mal die Frage, wie du das denn festgestellt hast, das es nicht gecached wird?
Ich würde die Sinnhaftigkeit ein <we:object> zu cachen auch durchaus mal in Frage stellen. Denn eine DB Abfrage durch eine DB Anfrage zu beschleunigen dürfte recht wenig bringen. Ich hoffe auch, das du nicht wirklich überall die gleiche seltsame id verwendest. Und es letztendlich über das gleiche Template abbildest. Das könnte durchaus den einen oder anderen Effekt, der in der Doku beschrieben ist, erklären.
Wie ich feststelle dass es nicht gecached wird ist weil jede Änderung im Modul, ohne die Seite mit einem Parameter aufzurufen, angezeigt wird. Dies gild nicht nur für Änderungen in den Objektdateien selbst sondern auch einfache HTML Änderugen. Dies passiert bei Module die keine Objekt Tags haben nicht und da muss man unbedingd die Seite mit einem Parameter aufrufen um die Änderungen zu sehen.
Natürlich ist die ID die du da siehst ja kein live Code. Ich weiß schon wie man richtige IDs einsetzt.
Ob es sinnvoll ist eine DB Abfrage durch eine andere zu ersetzen, ist nicht das Problem, sondern ganz einfach ob Objekt Tags gecached werden oder nicht denn anscheinend entsteht das Problem nicht nur bei den Objekten selbst sondern für HTML, CSS und JS die im Modul sind.

Re: Caching funktioniert bei <we:object> nicht

Verfasst: Di 2. Aug 2022, 11:30
von mokraemer
also Objekte werden nicht aus dem Caching rausgenommen.
Ich würde auch eher mal testen, ob Änderungen am Objekt durchschlagen. Denn Änderungen am HTML, der innerhalb des Caching steht wird immer als Änderung am Cache berücksichtigt. Wenn das in einem <we:include> steht natürlich nicht, es sei denn die an dem Tag selbst ändert sich etwas.
Timestamp ist die einfachste Möglichkeit, man kann den Schalter debug bemühen, dann sieht man die Unterschiede und eben auch ob es sich wirklich lohnt zu cachen. Mit debug wird er die Ausgabe (im Quelltext) "Cache: Entry not found!" und "Cache: Time to Cache Entry...." machen, wenn der Eintrag nicht im Cache war; sonst kommt nur "Cache: Fetchtime:"

Re: Caching funktioniert bei <we:object> nicht

Verfasst: Mi 3. Aug 2022, 08:10
von frog0815
Wo kann man den debug Mode einschalten?

Re: Caching funktioniert bei <we:object> nicht

Verfasst: Mi 3. Aug 2022, 10:37
von Finn
In dem Tag direkt, siehe Anhang.

Re: Caching funktioniert bei <we:object> nicht

Verfasst: Mi 3. Aug 2022, 11:47
von frog0815
Danke