var name = 'refresherCache'; self.addEventListener('install', function(event) { event.waitUntil( Promise.all([caches.open(name), fetch('./sw_clients/refresher_cached.html'), fetch('./sw_clients/refresher_cached_compressed.html')]).then(function(results) { var cache = results[0]; var response = results[1]; var compressed = results[2]; return Promise.all([cache.put('./sw_clients/refresher.html', response), cache.put('./sw_clients/refresher_compressed.html', compressed)]); }) ); }); self.addEventListener('fetch', function (event) { event.respondWith( caches.open(name).then(function(cache) { return cache.match(event.request); }).then(function(response) { // If this is one of our primary cached responses, then the window // must have generated the request via a normal window reload. That // should be detectable in the event.request.cache attribute. if (response && event.request.cache !== 'no-cache') { dump('### ### FetchEvent.request.cache is "' + event.request.cache + '" instead of expected "no-cache"\n'); return Response.error(); } return response || fetch(event.request); }) ); });