From d4edddb325d98d637fdda47b92a4e90fe03c911e Mon Sep 17 00:00:00 2001 From: BuildTools Date: Fri, 4 Sep 2020 14:47:25 +0000 Subject: major sw fuckery solved --- sw.js | 43 ++++++++++++++++++++++++++++++++++++------- 1 file changed, 36 insertions(+), 7 deletions(-) (limited to 'sw.js') diff --git a/sw.js b/sw.js index 6db0884..a4f231e 100644 --- a/sw.js +++ b/sw.js @@ -1,8 +1,11 @@ // Change version to cause cache refresh, sw.js SE NE SME CACHAT aka ne ga dat v assets! -const static_cache_name = "site-static-v0.0.4"; +const static_cache_name = "site-static-v0.0.5"; const offlineUrl = "/offline.html"; const assets = [ "/manifest.json", // proxy | + "/900/404/", // moje | + "/900/404/index.html", // moje | + "/900/404", // moje | "/", // proxy | proxyjan je tudi sw.js "/index.html", // proxy | "/slike/icons-512.png", // proxy | redfox.js je poklican iz @@ -22,7 +25,6 @@ const assets = [ "/favicon.png", // proxy | "/offline.html" // moje | ]; - self.addEventListener("install", (evt) => { evt.waitUntil( caches.open(static_cache_name).then((cache) => { @@ -48,13 +50,40 @@ self.addEventListener("fetch", (event) => { ( (event.request.method === 'GET' || // če je GET event.request.method === 'POST') // ali POST zahteva && event.request.headers.get('accept').includes('text/html'))) { - - event.respondWith(fetch(event.request.url).catch(error => { - return caches.match(offlineUrl); + + event.respondWith(caches.match(event.request) + .then((cache_res) => { + if (cache_res) { + return cache_res; + } else { + +///// start of fetch thingies ///// + + return fetch(event.request.url) + .then(response => { + response.redirected = false; + console.log(response); + if (response.redirected) { +return new Response("", { + status: 200, + statusText: "OK", + headers: response.headers +}); + } + return response; + }) + .catch(error => { + return caches.match(offlineUrl); + }); + +///// end of fetch thingys ///// + + } })); } else { // zahteva je za nek resource (css/js/img), ne za stran - event.respondWith(caches.match(event.request).then((cache_res) => { + event.respondWith(caches.match(event.request) + .then((cache_res) => { return cache_res || fetch(event.request); - })) + })); } }); -- cgit v1.2.3