Dienstplan-Pro/sw.js

35 lines
870 B
JavaScript

const CACHE_NAME = 'dienstplan-pro-v7';
const ASSETS = [
'./',
'./index.html',
'./styles.css',
'./app.js',
'./calculator.js',
'./variants.js',
'./holidays.js',
'./storage.js',
'./sync.js',
'./image-import.js'
];
self.addEventListener('install', (e) => {
// Neue Version sofort uebernehmen, nicht auf Schliessen aller Tabs warten.
self.skipWaiting();
e.waitUntil(
caches.open(CACHE_NAME).then((cache) => cache.addAll(ASSETS))
);
});
self.addEventListener('activate', (e) => {
e.waitUntil(
caches.keys().then((keys) =>
Promise.all(keys.filter((k) => k !== CACHE_NAME).map((k) => caches.delete(k)))
).then(() => self.clients.claim()) // laufende Tabs sofort uebernehmen
);
});
self.addEventListener('fetch', (e) => {
e.respondWith(
caches.match(e.request).then((response) => response || fetch(e.request))
);
});