@newaitix

Service Worker отдает устаревший контент?

Любая страница на сервере кешируется. Как перенастроить так этот 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);
});
  • Вопрос задан
  • 57 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы