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:
+24
-3
@@ -1219,9 +1219,30 @@ if (!state.setupDone) {
|
||||
}
|
||||
checkStorage();
|
||||
|
||||
if ('serviceWorker' in navigator) {
|
||||
navigator.serviceWorker.register('sw.js').catch(() => {});
|
||||
}
|
||||
// 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);
|
||||
// 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));
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
</body>
|
||||
|
||||
Reference in New Issue
Block a user