self.addEventListener("install", function(event) { event.waitUntil(initialCache()); }); var initialCache = function() { return caches.open("sw-cache").then(function(cache) { return cache.addAll(["inizio.php", "sw_offline.html"]); }); }; self.addEventListener("fetch", function(event) { event.respondWith(checkOffline(event.request).catch(function() { return recoverFromCache(event.request); })); event.waitUntil(updateCache(event.request)); }); var checkOffline = function(request) { return new Promise(function(fulfill, reject) { fetch(request).then(function(response) { if(response.status !== 404) { fulfill(response); } else { reject(); } }, reject); }); }; var updateCache = function(request) { return caches.open("sw-cache").then(function (cache) { return fetch(request).then(function (response) { return cache.put(request, response); }); }); }; var recoverFromCache = function(request) { return caches.open("sw-cache").then(function (cache) { return cache.match(request).then(function (matching) { if(!matching || matching.status == 404) { return cache.match("sw_offline.html"); } else { return matching; } }); }); }; |
Back to hoteldruid home page | HOTELDRUID DEMO | Example of a page to book from internet |