diff options
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); - })); -}); |
