Hub: add SW cleanup on load; add self-unregistering sw.js to kill stale Astro SW
This commit is contained in:
@@ -4,6 +4,16 @@
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>Bincio</title>
|
||||
<script>
|
||||
if ('serviceWorker' in navigator) {
|
||||
navigator.serviceWorker.getRegistrations().then(function(regs) {
|
||||
regs.forEach(function(r) { r.unregister(); });
|
||||
});
|
||||
caches.keys().then(function(keys) {
|
||||
keys.forEach(function(k) { caches.delete(k); });
|
||||
});
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
(function () {
|
||||
var palettes = {
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
self.addEventListener('install', () => self.skipWaiting());
|
||||
self.addEventListener('activate', e => {
|
||||
e.waitUntil((async () => {
|
||||
await self.clients.claim();
|
||||
const keys = await caches.keys();
|
||||
await Promise.all(keys.map(k => caches.delete(k)));
|
||||
const all = await self.clients.matchAll({ type: 'window', includeUncontrolled: true });
|
||||
for (const c of all) c.navigate(c.url);
|
||||
await self.registration.unregister();
|
||||
})());
|
||||
});
|
||||
Reference in New Issue
Block a user