From 32e85707948275d0e1a58674d5808c233f45e11d Mon Sep 17 00:00:00 2001 From: Azgaar Date: Sat, 14 May 2022 15:24:38 +0300 Subject: [PATCH] cache html with NetworkFirst strategy --- sw.js | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/sw.js b/sw.js index 8c88393e..ce803d5b 100644 --- a/sw.js +++ b/sw.js @@ -1,16 +1,25 @@ importScripts("https://storage.googleapis.com/workbox-cdn/releases/6.2.0/workbox-sw.js"); const {Route, registerRoute} = workbox.routing; -const {CacheFirst} = workbox.strategies; +const {CacheFirst, NetworkFirst} = workbox.strategies; const {CacheableResponsePlugin} = workbox.cacheableResponse; const {ExpirationPlugin} = workbox.expiration; const DAY = 24 * 60 * 60; const getPolitics = ({entries, days}) => { - return [new CacheableResponsePlugin({statuses: [200]}), new ExpirationPlugin({maxEntries: entries, maxAgeSeconds: days * DAY})]; + return [new CacheableResponsePlugin({statuses: [0, 200]}), new ExpirationPlugin({maxEntries: entries, maxAgeSeconds: days * DAY})]; }; +registerRoute( + ({request}) => request.mode === "navigate", + new NetworkFirst({ + networkTimeoutSeconds: 3, + cacheName: "fmg-html", + plugins: [new CacheableResponsePlugin({statuses: [0, 200]})] + }) +); + registerRoute( ({request, url}) => request.destination === "script" && !url.pathname.endsWith("min.js") && !url.pathname.includes("versioning.js"), new CacheFirst({