Sha256: 9025bc3335b5c19bd3eb3acb072a0a15f8446fce17cf0f0224ea563251ab8880
Contents?: true
Size: 1.79 KB
Versions: 17
Compression:
Stored size: 1.79 KB
Contents
const CACHE = "pwabuilder-offline"; const offlineFallbackPage = "index.html"; // Install stage sets up the index page (home page) in the cache and opens a new cache self.addEventListener("install", function (event) { console.log("Install Event processing"); event.waitUntil( caches.open(CACHE).then(function (cache) { console.log("Cached offline page during install"); if (offlineFallbackPage === "ToDo-replace-this-name.html") { return cache.add(new Response("Update the value of the offlineFallbackPage constant in the serviceworker.")); } return cache.add(offlineFallbackPage); }) ); }); // If any fetch fails, it will look for the request in the cache and serve it from there first self.addEventListener("fetch", function (event) { if (event.request.method !== "GET") return; event.respondWith( fetch(event.request) .then(function (response) { console.log("Add page to offline cache: " + response.url); // If request was success, add or update it in the cache event.waitUntil(updateCache(event.request, response.clone())); return response; }) .catch(function (error) { console.log("Network request Failed. Serving content from cache: " + error); return fromCache(event.request); }) ); }); function fromCache(request) { // Check to see if you have it in the cache // Return response // If not in the cache, then return error page return caches.open(CACHE).then(function (cache) { return cache.match(request).then(function (matching) { if (!matching || matching.status === 404) { return Promise.reject("no-match"); } return matching; }); }); } function updateCache(request, response) { return caches.open(CACHE).then(function (cache) { return cache.put(request, response); }); }
Version data entries
17 entries across 17 versions & 1 rubygems