Auto-Reload bei neuem Build: no-cache index.html, build-time Check, SW skip-waiting

This commit is contained in:
2026-05-30 01:25:37 +02:00
parent 7a76c3b86c
commit 2c521b67b7
3 changed files with 89 additions and 10 deletions

View File

@@ -1,9 +1,27 @@
// Passiver Service Worker nur für PWA-Installierbarkeit, kein Caching
// Verhindert schwarze Seiten nach Rebuilds
// Service Worker erkennt neue Builds und lädt automatisch neu
// BUILD_TIME wird beim Deploy vom Backend via /api/build-time geliefert
self.addEventListener('install', () => self.skipWaiting());
self.addEventListener('activate', e => e.waitUntil(
caches.keys().then(keys => Promise.all(keys.map(k => caches.delete(k))))
.then(() => self.clients.claim())
));
// Alle Requests direkt ans Netzwerk kein Intercept
const CACHE_NAME = 'dickendock-v1';
self.addEventListener('install', () => {
self.skipWaiting(); // sofort aktivieren
});
self.addEventListener('activate', e => {
// Alte Caches löschen
e.waitUntil(
caches.keys()
.then(keys => Promise.all(keys.map(k => caches.delete(k))))
.then(() => self.clients.claim())
);
});
// Alle Requests direkt ans Netzwerk kein Caching
self.addEventListener('fetch', e => {
e.respondWith(fetch(e.request));
});
// Auf Update-Nachricht vom Frontend reagieren
self.addEventListener('message', e => {
if (e.data === 'SKIP_WAITING') self.skipWaiting();
});