diff options
| author | horus | 2021-03-15 20:15:28 +0100 |
|---|---|---|
| committer | horus | 2021-03-15 20:15:28 +0100 |
| commit | 0eb2ede2855287eb77a5f2108afb14be5e413b53 (patch) | |
| tree | 3eed47eb355a2396bca3ea768cfd5b0b3e5d7501 /public/serviceworker.js | |
| parent | 31e3467e8550e4b6a5bfccbd0ae576d2455dce8a (diff) | |
| download | zeitumstellung-0eb2ede2855287eb77a5f2108afb14be5e413b53.tar.gz | |
Inline page in website
Diffstat (limited to 'public/serviceworker.js')
| -rw-r--r-- | public/serviceworker.js | 74 |
1 files changed, 0 insertions, 74 deletions
diff --git a/public/serviceworker.js b/public/serviceworker.js deleted file mode 100644 index f21a400..0000000 --- a/public/serviceworker.js +++ /dev/null @@ -1,74 +0,0 @@ -const filesToCache = [ - '/ical.php' -]; - -var cacheName = 'zeitumstellung-v1'; -var successResponses = /^0|([123]\d\d)|(40[14567])|410$/; - -/* https://developers.google.com/web/ilt/pwa/lab-caching-files-with-service-worker */ -self.addEventListener('install', function(event){ - console.log('Attempting to install service worker and cache static assets'); - event.waitUntil( - caches.open(cacheName) - .then(cache => { - return cache.addAll(filesToCache); - }) - ); - console.log('Installed'); -}); - -self.addEventListener('activate', function(event){ - console.log('Activate'); -}); - -function fetchAndCache(request){ - console.log('fetchAndCache', request.url); - return fetch(request.clone()).then(function(response){ - console.log(request.method, request.url, response.status, response.type); - if (request.method == 'GET' && response && successResponses.test(response.status) && response.type == 'basic'){ - console.log('Cache', request.url); - caches.open(cacheName).then(function(cache){ - cache.put(request, response); - }); - } - return response.clone(); - }); -}; - -function cacheOnly(request){ - console.log('cacheOnly', request.url); - return caches.open(cacheName).then(function(cache){ - return cache.match(request); - }); -}; - -// Fastest strategy from https://github.com/GoogleChrome/sw-toolbox -self.addEventListener('fetch', function(event){ - var request = event.request; - var url = request.url; - console.log('Fetch', url); - event.respondWith(new Promise(function(resolve, reject){ - var rejected = false; - var reasons = []; - - var maybeReject = function(reason){ - reasons.push(reason.toString()); - if (rejected){ - reject(new Error('Both cache and network failed: "' + reasons.join('", "') + '"')); - } else { - rejected = true; - } - }; - - var maybeResolve = function(result){ - if (result instanceof Response){ - resolve(result); - } else { - maybeReject('No result returned'); - } - }; - - fetchAndCache(request.clone()).then(maybeResolve, maybeReject); - cacheOnly(request).then(maybeResolve, maybeReject); - })); -}); |
