3

ServiceWorkerRegistration.update()由于尚未在 Chrome 中实现,我如何以编程方式更新服务工作者?有替代方案吗?

4

3 回答 3

6

我假设你现在已经知道了,但我认为你想要serviceWorker.skipWaiting( )

于 2016-10-07T23:04:06.080 回答
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);
  });
};
于 2017-09-26T08:12:47.677 回答
0

最好的解决方法似乎是通过一些简单的后端代码更改服务工作者文件的校验和来强制更新(它可以像微时间的最后注释行),这将被浏览器检测到

于 2015-06-26T08:57:54.363 回答