const filesToCache = [ './', './css/appstyling-v2.css', './css/main.css', './js/Weight Calculation Script-Edited-Jquery-V4.js', './images/45lbs-Plate.svg', './images/35lbs-Plate.svg', './images/25lbs-Plate.svg', './images/10lbs-Plate.svg', './images/5lbs-Plate.svg', './images/2halflbs-Plate.svg', './images/favicon-16x16.png', './images/favicon-32x32.png', './index.html' ]; const staticCacheName = 'pages-cache-v1'; self.addEventListener('install', event => { console.log('Attempting to install service worker and cache static assets'); event.waitUntil( caches.open(staticCacheName) .then(cache => { return cache.addAll(filesToCache); }) ); }); self.addEventListener('activate', event => { console.log('Activating new service worker...'); const cacheWhitelist = [staticCacheName]; event.waitUntil( caches.keys().then(cacheNames => { return Promise.all( cacheNames.map(cacheName => { if (cacheWhitelist.indexOf(cacheName) === -1) { return caches.delete(cacheName); } }) ); }) ); }); self.addEventListener('fetch', event => { console.log('Fetch event for ', event.request.url); event.respondWith( caches.match(event.request) .then(response => { if (response) { console.log('Found ', event.request.url, ' in cache'); return response; } console.log('Network request for ', event.request.url); return fetch(event.request) .then(response => { if (response.status === 404) { return caches.match('index.html'); } return caches.open(staticCacheName) .then(cache => { cache.put(event.request.url, response.clone()); return response; }); }); }).catch(error => { console.log('Error, ', error); return caches.match('index.html'); }) ); });