From ddc4ffe27cb4bc506c8a600ec7e473a88f775601 Mon Sep 17 00:00:00 2001 From: Shailesh Baldaniya Date: Tue, 7 Jul 2020 11:20:43 +0000 Subject: [PATCH 1/2] Improve SW Logic --- app/theme/server/server.js | 2 +- public/sw.js | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/app/theme/server/server.js b/app/theme/server/server.js index 9cde1fc67536..01953f9a52bf 100644 --- a/app/theme/server/server.js +++ b/app/theme/server/server.js @@ -158,7 +158,7 @@ Meteor.startup(() => { settings.get('css', (key, value = '') => { currentHash = crypto.createHash('sha1').update(value).digest('hex'); currentSize = value.length; - injectIntoHead('css-theme', ``); + injectIntoHead('css-theme', ``); }); }); diff --git a/public/sw.js b/public/sw.js index a1d4ee5c13e3..31336493516e 100644 --- a/public/sw.js +++ b/public/sw.js @@ -94,12 +94,15 @@ self.addEventListener('fetch', (event) => { event.respondWith( caches.match(event.request.clone()).then((cached) => { - const fetchEvent = fetchFromNetwork(event); // We don't return cached HTML (except if fetch failed) if (cached) { const resourceType = cached.headers.get('content-type'); // We only return non css/js/html cached response e.g images if (!hasHash(event.request.url) && !/text\/html/.test(resourceType)) { + // Refresh resources which are not(sound or assets) + if (!/sounds/.test(event.request.url) && !/assets/.test(event.request.url)) { + fetchFromNetwork(event); + } return cached; } @@ -108,7 +111,7 @@ self.addEventListener('fetch', (event) => { return cached; } } - return fetchEvent; + return fetchFromNetwork(event); }), ); }); From 761f985cbd6356a9f424a28f3a53e886dfa72b73 Mon Sep 17 00:00:00 2001 From: Shailesh Baldaniya Date: Tue, 7 Jul 2020 11:38:53 +0000 Subject: [PATCH 2/2] DOn't refetch fonts --- public/sw.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/sw.js b/public/sw.js index 31336493516e..47ab8a8f5b48 100644 --- a/public/sw.js +++ b/public/sw.js @@ -100,7 +100,7 @@ self.addEventListener('fetch', (event) => { // We only return non css/js/html cached response e.g images if (!hasHash(event.request.url) && !/text\/html/.test(resourceType)) { // Refresh resources which are not(sound or assets) - if (!/sounds/.test(event.request.url) && !/assets/.test(event.request.url)) { + if (!/sounds/.test(event.request.url) && !/assets/.test(event.request.url) && !/font/.test(event.request.url)) { fetchFromNetwork(event); } return cached;