在单页Web应用程序上更新服务人员

时间:2018-10-11 14:04:57

标签: single-page-application service-worker progressive-web-apps service-worker-events

我正在单页Webapp上工作,并正在实施服务人员。我了解到我需要手动更新Service Worker,因为单个页面的应用程序没有传统的导航事件,但是,我不清楚clients.claim()self.skipWaiting()的角色。

在手动更新服务工作者之后是否需要调用这些函数?我已经看到skipWaiting()事件中调用了install,并且在claim()事件处理程序中调用了activate。如果我需要它们之一或两者,这些是打电话的正确地方吗?

1 个答案:

答案 0 :(得分:0)

clients.claim()通常在安装事件中调用,以在激活服务工作者后控制不受控制的客户端。

  

只有在第一次加载时才真正重要,并且由于渐进   增强页面通常无需服务人员即可愉快地工作   无论如何。

对于skipWaiting(),这会使您的服务工作人员踢出当前活动的工作人员,并在进入等待阶段时立即激活自己(如果已经进入等待阶段,则立即激活)。它不会导致您的工作人员跳过安装,而只是等待。在install事件中调用它很普遍。

  

在更新服务工作者时必须调用它。

有关更多信息,您可以查看service worker lifecycle文档。