diff --git a/index.html b/index.html index 7cb29dd..cce016d 100644 --- a/index.html +++ b/index.html @@ -925,6 +925,7 @@ function updateRamFields() { document.getElementById('ram-enc-row').style.display = cmd === 'store-data' ? '' : 'none'; document.getElementById('ram-del-mode-row').style.display = cmd === 'delete' ? '' : 'none'; document.getElementById('ram-gs-mode-row').style.display = cmd === 'get-status' ? '' : 'none'; + document.getElementById('ram-gs-p2-row').style.display = cmd === 'get-status' ? '' : 'none'; document.getElementById('ram-tag-row').style.display = cmd === 'get-data' ? '' : 'none'; document.getElementById('ram-ss-mode-row').style.display = cmd === 'set-status' ? '' : 'none'; document.getElementById('ram-ss-state-row').style.display = cmd === 'set-status' ? '' : 'none'; diff --git a/sw.js b/sw.js index 7612dae..5e957ed 100644 --- a/sw.js +++ b/sw.js @@ -1,4 +1,4 @@ -const CACHE = 'otaman-v1'; +const CACHE = 'otaman-v2'; const URLS = [ 'index.html', 'style.css', @@ -20,16 +20,27 @@ self.addEventListener('activate', e => { e.waitUntil( caches.keys().then(keys => Promise.all(keys.filter(k => k !== CACHE).map(k => caches.delete(k))) - ) + ).then(() => clients.claim()) ); }); self.addEventListener('fetch', e => { - e.respondWith( - caches.match(e.request).then(r => r || fetch(e.request).then(res => { - const clone = res.clone(); - caches.open(CACHE).then(c => c.put(e.request, clone)); - return res; - })) - ); + const isNavigate = e.request.mode === 'navigate' || e.request.url.endsWith('sw.js'); + if (isNavigate) { + e.respondWith( + fetch(e.request).then(res => { + const clone = res.clone(); + caches.open(CACHE).then(c => c.put(e.request, clone)); + return res; + }).catch(() => caches.match(e.request)) + ); + } else { + e.respondWith( + caches.match(e.request).then(r => r || fetch(e.request).then(res => { + const clone = res.clone(); + caches.open(CACHE).then(c => c.put(e.request, clone)); + return res; + })) + ); + } }); \ No newline at end of file