Sha256: b2c9f68626d03992c35df979a8bb23c6c4f01bb6087afcd324d7711039f4088d
Contents?: true
Size: 1.8 KB
Versions: 8
Compression:
Stored size: 1.8 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
8 entries across 8 versions & 1 rubygems