WBCE CMS Forum

WBCE CMS – Way Better Content Editing.

You are not logged in.

#1 06.03.2020 16:03:13

boeseroeser
Guest

Noch was: Handhabung von ?7454235654

In vielen Modulen werden Zeit- oder Zufallsparameter angehängt, um ein Neuladen (zb von Bildern, CSS usw) zu erzwingen.
Bei manchen nur für angemeldete Nutzer (rFG), bei manchen immer.

Das halte ich nicht für ideal, die allermeiste Zeit ändert sich an einer Website ja nichts, die Ladezeit wird aber trotzdem stark verlängert.

Ich würde daher vorschlagen:

Eine vom Core bereitgestellte Konstante IRGENDWAS (zb FORCE_RELOAD), die in solchen Fällen von Modulen verwendet werden kann.
Wie - das sollte einstellbar sein, zb in den Grundeinstellungen:
"Auto" (default) bewirkt, dass diese Konstante für zb 3 Stunden einen Wert bekommt, wenn sich jemand angemeldet. Das ist einfach zu realisieren: Timestamp in ein Datenbank-Feld speichern, wenn Delta-t kleiner 3 Stunden: Zufallswert generieren, ansonsten leer.
Immer: Eben immer, man muss aber die längere Ladezeit in Kauf nehmen.
Nie: Man muss wissen, dass man eventuell hart reloaden muss.

In einem Modul oder Template muss eben gefragt werden:
if defined und hat einen Wert: diesen verwenden, sonst nicht.

Last edited by boeseroeser (06.03.2020 16:12:54)

#2 06.03.2020 16:09:57

florian
Administrator

Re: Noch was: Handhabung von ?7454235654

Seit 1.4 wird so ein Parameter vom Core erzeugt und an alle vom Template oder Modulen erzeugten CSS- und JS-Datei-Aufrufe angehängt. Dabei handelt es sich um den Timestamp der Dateierzeugung, d.h. der Parameter ändert sich nicht jedes Mal.
Über das Outputfilter-Dashboard lässt sich das abschalten, verantwortlich ist der Filter "Cache Control".

Offline

Liked by:

mrbaseman

#3 06.03.2020 16:11:56

stefanek
Developer

Re: Noch was: Handhabung von ?7454235654

Meiner Meinung nach sollte ein Neuladen nur erzwungen werden, wenn die Datei sich verändert hat. Verändert sich die Datei so verändert sich auch ihr Zeitstempel und diesen kann man anhängen. D.h. es wird nicht immer ein neuer Zeitstempel erzeugt sondern nur dann, wenn sich an der Datei was verändert hat.

CSS und JS Dateien die über register_frontend_modfiles oder die Insert/I Methoden geladen werden setzen Zeitstempel der letzten Änderung ran.

Ich könnte eine Funktion schreiben, die man mit Bildern verwenden kann, die man dann in Modulen verwenden kann.


"All the knowledge I possess everyone else can acquire, but my heart is all my own."
Johann Wolfgang von Goethe

Offline

#4 06.03.2020 16:16:26

boeseroeser
Guest

Re: Noch was: Handhabung von ?7454235654

stefanek wrote:

Meiner Meinung nach sollte ein Neuladen nur erzwungen werden, wenn die Datei sich verändert hat. Verändert sich die Datei so verändert sich auch ihr Zeitstempel und diesen kann man anhängen.

Es ist aber sehr kompliziert, das alles festzustellen. Wenn du zb in Topics oder in einer Gallery ein Bild beschnitten hast, soll eben auch gleich so dargestellt werden. ICh halte es nicht für möglich, jede Eventualität einzeln zu behandeln, da wird man ja verrückt dabei.

#5 06.03.2020 16:47:21

stefanek
Developer

Re: Noch was: Handhabung von ?7454235654

Ja gut, aber irgendwie verlinkst Du ja auch zu den Bildern die dargestellt werden sollen.
Und genau an dieser stelle würdest Du dann die Funktion einsetzen.

Wobei Du hast schon recht, man könnte auch einen Mechanismus haben, wo das was angehängt wird per Knopfdruck verändert wird.
Aber auch das musst Du in dem Modul-Code einbinden.
Und hat den Nachteil, dass dann alles wieder neu geladen werden muss (in den Cache des Clients) obwohl man vielleicht nur eine bis Handvoll Dateien verändert hat.


"All the knowledge I possess everyone else can acquire, but my heart is all my own."
Johann Wolfgang von Goethe

Offline

#6 06.03.2020 16:57:22

boeseroeser
Guest

Re: Noch was: Handhabung von ?7454235654

zB bei der rFG wird ohnehin abgefragt, ob der der Nutzer angemeldet ist. Dann wird auch ein String an die Bilder angehängt, das kann ich dem Nutzer zumuten.
Andere (nicht angemeldete Nutzer) sehen den String nicht und sehen eventuell "alte" Bilder. Auch das kann man vertreten, es wird ja nicht gerade die ärgste Peinlichkeit zu sehen sein. Wenn das so lange online war, dass man es im Browser-Cache hat.

Eine nennenswert komplexere Lösung würde ich nicht einbauen wollen, so wichtig ist das Thema dann auch wieder nicht. Eine Kontante ist schnell abgefragt. aber irgendeine Funktion einbauen ist nicht so trivial.

Last edited by boeseroeser (06.03.2020 16:58:12)

#7 06.03.2020 17:12:49

stefanek
Developer

Re: Noch was: Handhabung von ?7454235654

Kommt auf den Blickwinkel drauf an.
Für mich ist es trivial.

Hatte schon vor Jahren die fresh_file() Funktion und diese hat sich immer bewährt.
War eine der ersten Funktionen die ich für WB überhaupt selbst geschrieben habe. Eigentlich irgendwie von WP abgeguckt und wollte es auch haben.
Super simple und kein Overhead.

Man könnte natürlich auch einen Filter schreiben, der alles img src= filtert und dann das Erstellungsdatum ranhängt.
Aber das ist ein Overkill.


"All the knowledge I possess everyone else can acquire, but my heart is all my own."
Johann Wolfgang von Goethe

Offline

#8 10.03.2020 10:31:11

mrbaseman
Developer

Re: Noch was: Handhabung von ?7454235654

stefanek wrote:

Man könnte natürlich auch einen Filter schreiben, der alles img src= filtert und dann das Erstellungsdatum ranhängt.
Aber das ist ein Overkill.

Mit dem OpF Dashboard kannst du aber ja den Filter auf bestimmte Seiten oder bestimmte Module oder Modulkategorien einschränken.

Wenn du genau weißt, was du zusätzlich zum Cachecontrol noch an Funktionalität brauchst, dann sind im Dashboard schon ziemlich viele Hilfsmittel drin, bei denen du dich bedienen kannst. Es erfordert zwar etwas Einarbeitung, aber die Genialität der Ideen, die in dem Modul drin gesteckt sind, haben mich dazu gebracht, es selbst einzusetzen und da Thorn es nicht mehr weiterentwickelt hat, es selbst zu übernehmen und zu pflegen.

Offline

Liked by:

stefanek

#9 10.03.2020 10:45:11

stefanek
Developer

Re: Noch was: Handhabung von ?7454235654

Ich weiß, ich habe ja mit Thorn lange Zeit gemeinsam an dem Tool gearbeitet.
Unter seinem Flügeln habe ich viel Einblick in die Programmierung bekommen.
Aber für diesen Zweck wäre ein Filter ein absoluter Overkill.  smile


"All the knowledge I possess everyone else can acquire, but my heart is all my own."
Johann Wolfgang von Goethe

Offline

Board footer

Powered by FluxBB

up