diff --git a/assets/js/wd-core.js b/assets/js/wd-core.js index 72285187..a59b367b 100644 --- a/assets/js/wd-core.js +++ b/assets/js/wd-core.js @@ -815,8 +815,30 @@ // Über file:// gibt es keine Service Worker — dort gar nicht erst versuchen. if (!/^https?:$/.test(location.protocol)) return; window.addEventListener("load", function () { + /* Die Versionsnummer in der Adresse ist kein Schmuck, sondern die + Umgehung eines Zwischenspeichers, den wir nicht steuern. + + Gemessen am 26.08.2026: Der Server liefert sw.js mit + "Cache-Control: no-cache" aus. Cloudflare ersetzt das durch + "max-age=14400" -- vier Stunden, und zwar auch bei einem + Fehlschlag im eigenen Zwischenspeicher (cf-cache-status: MISS). + Ursache ist eine feste "Browser Cache TTL" in den + Cloudflare-Einstellungen; die Annahme im Kopf von + server/index.js, ein gesetztes Cache-Control werde respektiert, + trifft fuer diese Domain nicht zu. + + Folge: Jede Aenderung am Service Worker erreicht die Geraete bis + zu vier Stunden zu spaet. Bei einem fehlerhaften Stand -- wie an + diesem Tag, als eine zu strenge Inhaltsrichtlinie ihn lahmlegte + und die App "Keine Verbindung" zeigte -- sind das vier Stunden, + in denen sich nichts reparieren laesst. + + Mit der Versionsnummer ist es eine ANDERE Adresse, sobald sie + sich aendert. Ein Zwischenspeicher kann dafuer keinen alten + Stand haben. Die Nummer wird zusammen mit CACHE_NAME in sw.js + hochgezaehlt -- beide gehoeren zusammen. */ navigator.serviceWorker - .register("/webdesign/sw.js", { scope: "/webdesign/" }) + .register("/webdesign/sw.js?v=56", { scope: "/webdesign/" }) .catch(function () { /* still schlucken: ohne SW funktioniert alles weiter */ }); }); } diff --git a/webdesign/sw.js b/webdesign/sw.js index cc4b58c2..40df5bd7 100644 --- a/webdesign/sw.js +++ b/webdesign/sw.js @@ -34,7 +34,7 @@ Start alle alten Zwischenspeicher weg. Muss bei jeder Änderung an den Dateien unten hochgezählt werden, sonst hängen Nutzer auf einem alten Stand fest. */ -const CACHE_NAME = "dogfather-webdesign-v55"; +const CACHE_NAME = "dogfather-webdesign-v56"; /* Bausteine, die die Oberfläche zum Anzeigen braucht. Bewusst KEINE HTML-Datei in dieser Liste. */