summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2024-01-12 22:26:13 +0300
committerAndrew Dolgov <[email protected]>2024-01-12 22:26:13 +0300
commit9b5e351076387887b91044b29ab48555bc7c56e3 (patch)
tree9e1d8250cd00d2d67b5b18d383e1ed6506b8fbbe
parentd31fcb72cc6f6b2d1d798a75ff62d06c4dcd0cb4 (diff)
exp: worker clear all caches before refreshclear-all-caches
-rw-r--r--js/app.js2
-rw-r--r--worker.js18
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');