我如何以编程方式更新服务工作者,因为Chrome尚未实现ServiceWorkerRegistration.update()
?还有其他选择吗?
答案 0 :(得分:5)
我认为你现在已经有了这个,但我认为你想要serviceWorker.skipWaiting()
答案 1 :(得分:1)
最好的解决方法似乎是通过一些简单的后端代码更改服务工作者文件的校验和来强制更新(它可以像微缩时间的最后一个注释行),这将由浏览器检测到
答案 2 :(得分:1)
从规格。
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('/sw-test/sw.js', {scope: 'sw-test'}).then(function(registration) {
// registration worked
console.log('Registration succeeded.');
button.onclick = function() {
registration.update();
}
}).catch(function(error) {
// registration failed
console.log('Registration failed with ' + error);
});
};