javascript - Workbox:当有一个新的服务工作者时,它会加载但等待
问题描述
我在 Windows Pro 10 上工作并使用 Workbox 6.x。作为测试,在 Chrome 中:
- 我加载我的网站
- 在桌面上创建本地应用程序
- 启动应用程序
- 按 F12 进入 DevTools
- 离线检查
- 更改其中一个文件并重建站点
- 发布网站
- 离线检查
我想要的是更新的服务工作者立即被激活,但 DevTools 说它正在等待。
文档说默认情况下这将被添加到服务工作者中:
self.addEventListener('message', event => {
if (event.data && event.data.type === 'SKIP_WAITING') {
self.skipWaiting();
}
我检查并确实添加了代码,
那么为什么不 skipWaiting 做这项工作呢?
谢谢,
吉尔斯普兰特
解决方案
您是否使用workbox-build generateSW
来生成您的服务人员?因为默认skipWaiting
设置为false。您可以在 docstring中查看它,也可以在defaults中查看。
如果你只是想在waiting
开发时跳过 service worker 状态,你可以在 Chrome Dev Tools 中启用Update on Reload 。
另外,请注意skipWaiting() 的危险。
推荐阅读
- python - 我该如何优化这个循环?带有 json 的 Python 代码
- php - 获取刚刚添加到购物车的商品
- javascript - FullCalendar 中的递归过多
- sql-server-2008-r2 - 我运行 ISNUMERIC('
') 在 SQL Server 2008 级别 80 中,但它返回 1,而不是 0 - javascript - 如何在游戏获胜时添加警报(checkWinning)?
- sql - 显示 30 天内到期和过期的所有记录
- html - 如何在带有 HTML 的复选框中输入最大支票号码?
- neo4j - neo4j如何在限制后续节点之间的关系数量之间使用变量节点进行查询?
- php - 试图获取非对象 Laravel php 5.8 的属性“cname”
- java - 如何为我的 GMMK 键盘创建流光溢彩?