var cacheName = "moth:v1" var content = [ "index.html", "basic.css", "puzzle.js", "puzzle.html", "scoreboard.html", "moth.js", "sw.js", "points.json", ]; self.addEventListener("install", function(e) { e.waitUntil( caches.open(cacheName).then(function(cache) { return cache.addAll(content).then( function() { self.skipWaiting(); }); }) ); }); /* Attempt to fetch live resources, first, then fall back to cache */ self.addEventListener('fetch', function(event) { let cache_used = false; event.respondWith( fetch(event.request) .catch(function(evt) { console.log("Falling back to cache for " + event.request.url); cache_used = true; return caches.match(event.request, {ignoreSearch: true}); }).then(function(res) { if (res && res.ok) { let res_clone = res.clone(); if (! cache_used ) { caches.open(cacheName).then(function(cache) { cache.put(event.request, res_clone); console.log("Storing " + event.request.url + " in cache"); }); } return res; } else { console.log("Failed to retrieve resource"); } }) ); });