Service Worker仅更新包含活动的开发人员工具的页面

时间:2017-10-24 19:28:01

标签: javascript google-chrome debugging service-worker fetch-api

最近,我正在为Service Workers做更多工作,并构建一个小脚本来检查您是否处于离线状态,以便我可以提供自己的自定义"离线页面"给用户。今天我发现在关闭我的开发人员工具(Chrome 61+)时,在进一步开发我的网站(HTML,CSS和JavaScript)时,页面没有更新我对页面的最新修改。它似乎与我的Service Worker脚本有关。

如果我卸载SW或删除文件中的所有代码,我会看到我的更改已停用我的开发人员工具。我将问题归结为我用作event.respondWith回调的fetch方法。但这也是我被卡住的地方。

非常感谢所有帮助!

提前致谢, 斯蒂芬



"use strict";

// Install stage sets up the offline page in the cache and opens a new cache.
self.addEventListener('install', function(event){

	let offlinePage = new Request('Offline.html');

	event.waitUntil(

		fetch(offlinePage).then(function(response){

			return caches.open('page-offline').then(function(cache){

				console.log('Cached offline page during install', response.url);
				return cache.put(offlinePage, response);
			});
		})
	);
});

// If any fetch fails, it will show the offline page.
self.addEventListener('fetch', function(event){

	event.respondWith(

		fetch(event.request).catch(function(error){

				console.error('Network request failed, serving the offline page: ' + error);

				return caches.open('page-offline').then(function(cache){

					return cache.match('Offline.html');
				});
			}
		})
});




0 个答案:

没有答案