| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- //This is the "Offline copy of pages" service worker
- //Install stage sets up the index page (home page) in the cache and opens a new cache
- const {self} = window;
- self.addEventListener('install', function(event) {
- var indexPage = new Request('index.html');
- event.waitUntil(
- fetch(indexPage).then(function(response) {
- return caches.open('kutt-offline').then(function(cache) {
- console.log('Kutt Cached index page during Install' + response.url);
- return cache.put(indexPage, response);
- });
- }));
- });
- //If any fetch fails, it will look for the request in the cache and serve it from there first
- self.addEventListener('fetch', function(event) {
- var updateCache = function(request) {
- return caches.open('kutt-offline').then(function(cache) {
- return fetch(request).then(function(response) {
- console.log('Kutt add page to offline' + response.url)
- return cache.put(request, response);
- });
- });
- };
- event.waitUntil(updateCache(event.request));
- event.respondWith(
- fetch(event.request).catch(function(error) {
- console.log('Kutt Network request Failed. Serving content from cache: ' + error);
- //Check to see if you have it in the cache
- //Return response
- //If not in the cache, then return error page
- return caches.open('kutt-offline').then(function(cache) {
- return cache.match(event.request).then(function(matching) {
- var report = !matching || matching.status == 404 ? Promise.reject(new Error('no-match')) : matching;
- return report
- });
- });
- })
- );
- })
|