From 9b5e351076387887b91044b29ab48555bc7c56e3 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Fri, 12 Jan 2024 22:26:13 +0300 Subject: exp: worker clear all caches before refresh --- js/app.js | 2 +- worker.js | 18 ++++++++++++++++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/js/app.js b/js/app.js index f2774f2..1daa689 100644 --- a/js/app.js +++ b/js/app.js @@ -100,7 +100,7 @@ const App = { if (event.data == 'client-reload') { localforage.setItem("epube.cache-timestamp", App.last_mtime); localforage.setItem("epube.cache-version", App.version); - window.location.reload() + window.location.reload(); } }); diff --git a/worker.js b/worker.js index 73024fd..84975dc 100644 --- a/worker.js +++ b/worker.js @@ -16,6 +16,18 @@ self.addEventListener('activate', function(event) { ); }); +async function clear_all_caches() { + console.log('clearing local cache...'); + + const all_caches = await caches.keys(); + + all_caches.forEach((cache) => { + caches.delete(cache); + }); + + console.log('cache cleared'); +} + function send_message(client, msg) { client.postMessage(msg); } @@ -28,11 +40,13 @@ function send_broadcast(msg) { }) } -self.addEventListener('message', function(event){ +self.addEventListener('message', async function(event){ console.log('got message', event.data); if (event.data.msg == 'refresh-cache') { - console.log("refreshing cache...", event); + await clear_all_caches(); + + console.log("cleared, refreshing cache...", event); send_broadcast('refresh-started'); -- cgit v1.2.3