Gambio und Javascript Cache in Chrome

Thema wurde von M. Zitzmann, 29. Juli 2021 erstellt.

  1. M. Zitzmann

    M. Zitzmann Erfahrener Benutzer

    Registriert seit:
    3. März 2016
    Beiträge:
    285
    Danke erhalten:
    91
    Danke vergeben:
    27
    Hallo.

    Wenn ich als Besucher einen Gambio Shop aufrufe werden alle Javascripte im Cache gespeichert.
    Wenn ich nun ein Script verändere erkennt der Browser das nicht sofort.
    In Firefox werden die Scripte neu geladen - und somit die Änderungen erkannt - sobald ich die Seite aktualisiere.
    In Chrome muß ich erst den Browsercache löschen damit Änderungen erkannt werden.

    Gibt es eine Möglichkeit daß geänderte Scripte in allen Browsern sofort erkannt werden oder muß ich dazu einfach nur neue Scripte verwenden?
     
  2. Wilken (Gambio)

    Wilken (Gambio) Administrator
    Mitarbeiter

    Registriert seit:
    7. November 2012
    Beiträge:
    17.667
    Danke erhalten:
    6.724
    Danke vergeben:
    2.030
    Du musst dafür sorgen, dass der Browser das Ding garantiert neu herunterlädt wenn sichs ändert. Das erledigen wir zum Beispiel an vielen Stellen per bust Parameter, idealerweise in der URL und nicht per GET, das ist am zuverlässigsten.
     
  3. M. Zitzmann

    M. Zitzmann Erfahrener Benutzer

    Registriert seit:
    3. März 2016
    Beiträge:
    285
    Danke erhalten:
    91
    Danke vergeben:
    27
    Also so:

    Code:
    src="meinscript.js?bust=12345
    Aber was ist wenn ich die Datei im GXModules....Javascript/ProductInfo/ habe?
     
  4. Wilken (Gambio)

    Wilken (Gambio) Administrator
    Mitarbeiter

    Registriert seit:
    7. November 2012
    Beiträge:
    17.667
    Danke erhalten:
    6.724
    Danke vergeben:
    2.030
    2 Fälle:

    Fall 1: Du lädst direkt selbst eine JS Datei. Du hängst dann nach Muster und abhängig von der Einstellung im Backend ( bust Parameter im Pfad/bust Parameter per GET) den aktuellen, dynamischen bust Parameter an. Der muss sich immer dann ändern, wenn man den Seitencache leert.

    Fall 2: Du lässt ein Javascript durch unseren JS Cache ausliefern. Du löscht dann nach Änderung den Modul und Seitencache, damit der bust Parameter sich ändert und der Browser die neue Version lädt.

    Und dazu: In allen Shops, die auf einem reinen Apache Hosting laufen, lässt du den Bust Parameter idealerweise im Pfad setzen. Das ist per Default aus, weil es auf anderen Webservern als Apache ohne die htaccess Datei umzusetzen sofort zu einem Instanttod des Shops führt den Knopf im Backend anzuschalten, bis man den wieder per Krücke ausmacht. Die login_admin.php kennt einen Parameter dafür das rückgängig zu machen.
     
  5. Wilken (Gambio)

    Wilken (Gambio) Administrator
    Mitarbeiter

    Registriert seit:
    7. November 2012
    Beiträge:
    17.667
    Danke erhalten:
    6.724
    Danke vergeben:
    2.030
    Mir fällt gerade auf, das ich vergessen hab zu sagen warum man das hier tun sollte:

    Theoretisch sollte ein Parameter hinten auch dafür sorgen, dass ein Script immer neu geladen wird, das ist aber in manchen Browsern auch nicht immer ganz zuverlässig. Spätestens mit dem Ding im Pfad ist das Rennen gewonnen. Dazu wird so ein Asset dann auch auf Caching Proxies vor einem Shop cachefähig, sei es was lokales oder Cloudflare oder was auch immer. Die mögen alle keine Dinge mit GET-Parametern.