Caching funktioniert bei <we:object> nicht

Fragen zum Erstellen von Templates für webEdition.
sharif2
Junior Member
Beiträge: 21
Registriert: Mo 25. Jan 2021, 15:27

Caching funktioniert bei <we:object> nicht

Beitragvon sharif2 » Mo 1. Aug 2022, 12:51

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.

mokraemer
Senior Member
Beiträge: 3619
Registriert: So 8. Aug 2010, 01:23
Wohnort: Mainz

Re: Caching funktioniert bei <we:object> nicht

Beitragvon mokraemer » 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.
webEdition-Kern-Entwickler

frog0815
Member
Beiträge: 36
Registriert: Mo 7. Apr 2014, 14:25

Re: Caching funktioniert bei <we:object> nicht

Beitragvon frog0815 » Di 2. Aug 2022, 10:30

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.

sharif2
Junior Member
Beiträge: 21
Registriert: Mo 25. Jan 2021, 15:27

Re: Caching funktioniert bei <we:object> nicht

Beitragvon sharif2 » Di 2. Aug 2022, 10:44

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.

mokraemer
Senior Member
Beiträge: 3619
Registriert: So 8. Aug 2010, 01:23
Wohnort: Mainz

Re: Caching funktioniert bei <we:object> nicht

Beitragvon mokraemer » Di 2. Aug 2022, 11:30

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:"
webEdition-Kern-Entwickler

frog0815
Member
Beiträge: 36
Registriert: Mo 7. Apr 2014, 14:25

Re: Caching funktioniert bei <we:object> nicht

Beitragvon frog0815 » Mi 3. Aug 2022, 08:10

Wo kann man den debug Mode einschalten?

Benutzeravatar
Finn
Senior Member
Beiträge: 285
Registriert: Mo 3. Apr 2017, 13:37
Wohnort: Bremen
Kontaktdaten:

Re: Caching funktioniert bei <we:object> nicht

Beitragvon Finn » Mi 3. Aug 2022, 10:37

In dem Tag direkt, siehe Anhang.
Dateianhänge
Bildschirmfoto 2022-08-03 um 10.36.25.png
Bildschirmfoto 2022-08-03 um 10.36.25.png (91.83 KiB) 1308 mal betrachtet
Finn Thorwarth
WG Werbeagentur
https://www.wg-werbeagentur.de

frog0815
Member
Beiträge: 36
Registriert: Mo 7. Apr 2014, 14:25

Re: Caching funktioniert bei <we:object> nicht

Beitragvon frog0815 » Mi 3. Aug 2022, 11:47

Danke


Zurück zu „webEdition Templates erstellen (we:Tags)“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 10 Gäste