我试图强制重新加载新的Service Worker文件,但是它没有自动加载。我已经在devtools的“应用程序”选项卡中选中了“重新加载时更新”复选框,并在“源”选项卡中禁用了缓存。
我正在使用Chrome版本“ 75.0.3770.100”。
使它正常工作的唯一方法是再次选中和取消选中,另一种方法是单击“ skipWaiting”
我是否缺少某些东西或应该启用标志?
感谢您的帮助!
答案 0 :(得分:0)
如果您在Devtools中看到skipWaiting
选项是因为您没有在安装事件中调用self.skipWaiting()。通常,新的更新的服务程序会等到较旧的版本不控制任何客户端。 self.skipWaiting()可以防止这种等待。这是一个例子。
//This is the install event listener
self.addEventListener("install", (event) => {
console.log(self);
event.waitUntil(
caches.open(CACHE_NAME).then(cache => {
cache.addAll(STATIC_ASSETS).then(() => {
self.skipWaiting();
}).catch(error => {
logForDevelopment("An error occured while adding static assets to the cache", true);
logForDevelopment(error, true);
})
})
);
logForDevelopment("Service Worker: Installed");
});