ServiceWorker在Chrome中进行硬重载(Ctrl-Shift-R)失败

时间:2018-03-01 16:26:24

标签: service-worker

为什么服务工作者在硬重载(Ctrl-Shift-R)后会失败?

----案例1 CHROME ---成功

  1. 卸载服务工作者
  2. 加载页面
  3. 页面安装服务工作者
  4. Worker.postMessage()成功
  5. 重新加载页面
  6. Worker.postMessage()成功
  7. ----案例2 CHROME ---失败

    1. 卸载服务工作者
    2. 加载页面
    3. 页面安装服务工作者
    4. Worker.postMessage()成功
    5. HARD RELOAD(ctrl-shift-R)页面(服务人员仍按照chrome:// serviceworker-internals /运行)
    6. Worker.postMessage()失败 - '错误sendingTypeError:无法读取属性' postMessage' of null'

2 个答案:

答案 0 :(得分:7)

当您重新加载时,重新加载页面will not be controlled by a service worker。这是服务工作者规范的一部分。

这仅适用于下一页加载。未来的页面加载(不涉及shift-reload)将继续由服务工作者控制,假设页面在一个范围内。

答案 1 :(得分:2)

在开发过程中,您可以使用例如Chrome的开发工具,并设置每次重新加载时都会更新服务工作者:

Service Worker Upload Settings Chrome Dev-Tools

有关进一步的参考,您可以阅读关于该主题的Googles Web Essentials