【发布时间】:2019-09-20 11:17:52
【问题描述】:
我试图了解skipWaiting 和clientsClaim 之间的区别。在我的理解中:调用skipWaiting 将导致新的服务工作者跳过等待阶段,并立即变得活跃。然后clientsClaim 也可以“声明”任何其他打开的标签。
我从在线文档中收集到的内容:
在我在网上找到的每个帖子中,我通常总是看到clientsClaim 和skipWaiting 一起使用。
但是,我最近发现了一个只使用clientsClaim 的服务人员,我很难理解clientsClaim 和skipWaiting 之间的实际区别是什么,在什么情况下你会使用clientsClaim 但不是 skipWaiting?
我对此的想法,这可能是我错的地方,但这是我对它的理解:
打电话clientsClaim,而不是skipWaiting 是多余的吗?考虑:
- 当所有打开的页面都关闭时,新的 Service Worker 将变为活动状态(因为我们没有使用
skipWaiting) - 当我们的新服务工作者被激活时,我们调用
clientsClaim,即使我们只是关闭了所有打开的页面来激活新的服务工作者。应该没有其他页面可以控制,因为我们刚刚关闭了它们。
谁能帮我理解一下?
阅读skipWaiting上的文档
阅读clientsClaim上的文档
阅读 Jake Archibald 的 service worker lifecycle,并玩弄 this demo
阅读一堆 stackoverflow 帖子、离线食谱、不同的博客文章等。
【问题讨论】:
标签: service-worker progressive-web-apps