Любая страница на сервере кешируется. Как перенастроить так этот Service Worker чтоб если страница доступна то грузим с сервера если страница не доступна грузим с Service Worker-а?
var config={
mc:[
'/templater/popUpId.tpl',
'/templater/bodyId.tpl',
'/templater/topNavLog.tpl',
'/templater/topNav.tpl',
'/templater/bodyFailedAuth.tpl',
'/templater/registration.tpl',
'/templater/login.tpl',
'/templater/syncToServ.tpl',
'/templater/syncToPc.tpl',
'/templater/emptySearch.tpl',
'/templater/updateButton.tpl',
'/templater/notification.tpl',
'/js/library.js',
'/js/script.js',
'/js/sevice.js',
'/css/style.css'
],
version:['v14'],
maxAge:20000
};
self.addEventListener('activate',function(event){
event.waitUntil(caches.keys().then(function(keyList){
return Promise.all(keyList.map(function(key){
if(config.version.indexOf(key)===-1)
return caches.delete(key);
}));
}));
});
self.addEventListener('install',function(event){
event.waitUntil(caches.open(config.version).then(function(cache){
if(location.protocol=='http:'||location.protocol=='https:')
return cache.addAll(config.mc);
}));
});
self.addEventListener('fetch',function(event){
event.respondWith(caches.match(event.request).then(function(response){
if(response)
return response;
return fetch(event.request).then(function(response){
if(!response||response.status!==200||response.type!=='basic')
return response;
var responseToCache=response.clone();
caches.open(config.version).then(function(cache){
if(event.request.url.split('://')[0]!='chrome-extension'){
if(event.request.method!='POST')
cache.put(event.request,responseToCache);
}
});
return response;
});
})
);
});
self.addEventListener('message',function(event){
console.log('Handling message event:',event);
});