我正在单页Webapp上工作,并正在实施服务人员。我了解到我需要手动更新Service Worker,因为单个页面的应用程序没有传统的导航事件,但是,我不清楚clients.claim()
和self.skipWaiting()
的角色。>
在手动更新服务工作者之后是否需要调用这些函数?我已经看到skipWaiting()
事件中调用了install
,并且在claim()
事件处理程序中调用了activate
。如果我需要它们之一或两者,这些是打电话的正确地方吗?
答案 0 :(得分:0)
clients.claim()
通常在安装事件中调用,以在激活服务工作者后控制不受控制的客户端。
只有在第一次加载时才真正重要,并且由于渐进 增强页面通常无需服务人员即可愉快地工作 无论如何。
对于skipWaiting()
,这会使您的服务工作人员踢出当前活动的工作人员,并在进入等待阶段时立即激活自己(如果已经进入等待阶段,则立即激活)。它不会导致您的工作人员跳过安装,而只是等待。在install
事件中调用它很普遍。
在更新服务工作者时必须调用它。
有关更多信息,您可以查看service worker lifecycle文档。