let cacheName = 'v1.1::static'; const pageCached = [ '/', '/index.html', '/manifest.json', '/sw.js', '/tools.ico', '/assets/css/font-awesome.min.css', '/assets/css/template.css', '/assets/css/custom.css', '/assets/fonts/fontawesome-webfont.eot', '/assets/fonts/fontawesome-webfont.svg', '/assets/fonts/fontawesome-webfont.ttf', '/assets/fonts/fontawesome-webfont.woff', '/assets/fonts/fontawesome-webfont.woff2', '/assets/fonts/FontAwesome.otf', '/assets/fonts/wildy.ttf', '/assets/js/util.js', '/assets/js/main.js', '/assets/js/jquery-3.2.1.min.js', '/assets/js/jquery-ui.min.js', '/assets/js/jquery.scrolly.min.js', '/assets/js/jquery.redirect.js', '/assets/js/handlebars.min.js', '/assets/js/skel.min.js', '/assets/img/tools.svg', ]; self.addEventListener('install', e => { // once the SW is installed, go ahead and fetch the resources // to make this work offline e.waitUntil( caches.open(cacheName).then(cache => { return cache.addAll(pageCached).then(() => self.skipWaiting()); }) ); }); self.addEventListener('activate', function (e) { e.waitUntil( caches.keys().then(keyList => { return Promise.all(keyList.map(key => { if (key !== cacheName) { console.log('[ServiceWorker] Removing old cache', key); return caches.delete(key); } })); }) ); return self.clients.claim(); }); // when the browser fetches a url, either response with // the cached object or go ahead and fetch the actual url self.addEventListener('fetch', event => { event.respondWith( // ensure we check the *right* cache to match against caches.open(cacheName).then(cache => { return cache.match(event.request).then(res => { return res || fetch(event.request) }); }) ); });