From: Ardis Lu Date: Sun, 27 Feb 2022 04:33:39 +0000 (-0800) Subject: Simplify cache strategy to cache first X-Git-Url: https://git.ardis.lu/?a=commitdiff_plain;h=b84915e0de268be8e6948995956c269d6a189e54;p=ardislu.dev Simplify cache strategy to cache first staleWhileRevalidate produces too much load on origin --- diff --git a/sw.js b/sw.js index 64122f3..883b337 100644 --- a/sw.js +++ b/sw.js @@ -1,22 +1,31 @@ -const cacheName = 'v1'; +const cacheName = 'v2'; -self.addEventListener('install', event => { - event.waitUntil((async () => { - const cache = await caches.open(cacheName); - await cache.addAll(['index.html', '404.html', 'style.css', 'script.js', 'favicon.ico', 'github.svg', 'home.svg']); - })()); -}); +self.addEventListener('install', event => event.waitUntil( + caches.open(cacheName).then(cache => cache.addAll( + [ + 'index.html', + 'favicon.ico', + 'style.css', + 'print.css', + 'script.js', + 'github.svg', + 'home.svg', + 'pencil.svg' + ] + )) +)); -self.addEventListener('fetch', event => { - event.respondWith((async () => { - const fetchResponseP = fetch(event.request); - const fetchResponseCloneP = fetchResponseP.then(r => r.clone()); - - event.waitUntil((async () => { - const cache = await caches.open(cacheName); - await cache.add(event.request.url, await fetchResponseCloneP); - })()); - - return (await caches.match(event.request.url)) || fetchResponseP; - })()); -}); \ No newline at end of file +self.addEventListener('fetch', event => event.respondWith( + caches.match(event.request, { ignoreVary: true }).then(response => { + if (response !== undefined) { + return response; + } + else { + return fetch(event.request).then(response => { + const responseClone = response.clone(); + caches.open(cacheName).then(cache => cache.put(event.request, responseClone)); + return response; + }) + } + }) +));