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