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 charset="UTF-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<title>Bincio</title>
|
<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>
|
<script>
|
||||||
(function () {
|
(function () {
|
||||||
var palettes = {
|
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