diff options
-rw-r--r-- | index.php | 2 | ||||
-rw-r--r-- | js/index.js | 1 | ||||
-rw-r--r-- | worker.js | 31 |
3 files changed, 10 insertions, 24 deletions
@@ -164,6 +164,8 @@ } if (event.data == 'client-reload') { + const ts = parseInt(new Date().getTime()/1000); + localforage.setItem("epube.cache-timestamp", ts); window.location.reload() } diff --git a/js/index.js b/js/index.js index 2ec8508..bf892be 100644 --- a/js/index.js +++ b/js/index.js @@ -15,7 +15,6 @@ function cache_refresh(force) { if (navigator.serviceWorker.controller) { navigator.serviceWorker.controller.postMessage("refresh-cache"); - localforage.setItem("epube.cache-timestamp", ts); } else { localforage.getItem("epube.initial-load-done").then(function(done) { @@ -75,40 +75,25 @@ self.addEventListener('message', function(event){ send_broadcast('refresh-started'); - caches.open(CACHE_NAME).then(function(cache) { - const promises = []; + return caches.open(CACHE_NAME).then(function(cache) { - for (let i = 0; i < CACHE_URLS.length; i++) { + Promise.all(CACHE_URLS.map((url) => { + return fetch(url + "?ts=" + Date.now()).then((resp) => { + console.log('got', resp.url, resp); - if (CACHE_URLS[i].match("backend.php")) - continue; - - const fetch_url = CACHE_URLS[i] + "?ts=" + Date.now(); - - const promise = fetch(fetch_url).then(function(resp) { - const url = new URL(resp.url); - url.searchParams.delete("ts"); - - console.log('got', url); - - send_broadcast('refreshed:' + url); + send_broadcast('refreshed:' + resp.url); if (resp.status == 200) { - cache.put(url, resp); + return cache.put(url, resp); } else if (resp.status == 404) { - cache.delete(url); + return cache.delete(url); } }); - promises.push(promise); - - } - - Promise.all(promises).then(function() { + })).then(function() { console.log('all done'); send_broadcast('client-reload'); }); - }); } }); |