fix(cache): SW network-first für eigene Files

- Eigene HTML/JS/CSS werden IMMER frisch vom Netz geladen (kein Cache-First mehr)
- Map-Tiles (OSM/cartocdn) bleiben für Offline im Cache
- Cache-Version v3 → v4 (alte Bug-Caches werden in activate() gelöscht)
- Update-Hook: Browser fragt nach Reload wenn neuer SW aktiviert wird
- Fix: Updates an GitHub Pages sind sofort für alle sichtbar
This commit is contained in:
Hermes AI Bot
2026-06-27 13:03:24 +00:00
parent 6793ba5ae5
commit 94cce19d74
10 changed files with 271 additions and 73 deletions
+18 -2
View File
@@ -1148,11 +1148,27 @@ document.addEventListener('keydown', (e) => {
});
</script>
<script>
// PWA Service Worker registrieren
// PWA Service Worker — Network-First Strategie (Updates kommen sofort durch)
if ('serviceWorker' in navigator) {
window.addEventListener('load', () => {
navigator.serviceWorker.register('./sw.js')
.then(reg => console.log('[PWA] SW registered:', reg.scope))
.then(reg => {
console.log('[PWA] SW registered:', reg.scope);
// Update-Hook: wenn ein neuer SW installiert wurde, kurz reloaden
reg.addEventListener('updatefound', () => {
const newSw = reg.installing;
if (!newSw) return;
newSw.addEventListener('statechange', () => {
if (newSw.state === 'activated' && navigator.serviceWorker.controller) {
console.log('[PWA] Neue Version aktiviert — lade neu');
// Sanfter Reload ohne Datenverlust, Cache-Bust mit Timestamp
if (window.confirm('🔄 Neue Version der JGA-Seite verfügbar — jetzt neu laden?')) {
window.location.reload();
}
}
});
});
})
.catch(err => console.warn('[PWA] SW registration failed:', err));
});
}