如果update()不可用,则以编程方式更新服务工作者

时间:2015-06-25 09:35:57

标签: updates service-worker

我如何以编程方式更新服务工作者,因为Chrome尚未实现ServiceWorkerRegistration.update()?还有其他选择吗?

3 个答案:

答案 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);
  });
};