From: Ardis Lu Date: Fri, 4 Aug 2023 04:04:06 +0000 (-0700) Subject: Match with latest cache instead of all caches X-Git-Url: https://git.ardis.lu/?a=commitdiff_plain;h=37917ac1dac2149551401e0cd8d4c67f950df938;p=ardislu.dev Match with latest cache instead of all caches Fixes endless refresh bug when multiple cache versions exist --- diff --git a/sw.js b/sw.js index 87c02cf..78b73a4 100644 --- a/sw.js +++ b/sw.js @@ -2,7 +2,7 @@ const cacheName = 'v5'; const cacheChannel = new BroadcastChannel('cache'); async function revalidate(request) { - const cachePromise = caches.match(request); + const cachePromise = caches.open(cacheName).then(c => c.match(request)); const originPromise = fetch(request); const [cacheResponse, originResponse] = await Promise.all([cachePromise, originPromise]); @@ -32,7 +32,7 @@ globalThis.addEventListener('fetch', event => { return; } - event.respondWith(caches.match(event.request).then(cacheResponse => { + event.respondWith(caches.open(cacheName).then(c => c.match(event.request)).then(cacheResponse => { const originResponse = revalidate(event.request); return cacheResponse === undefined ? originResponse : cacheResponse; }));