0

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

手动更新 Service Worker 后是否需要调用这些函数?我已经看到skipWaiting()install事件中claim()调用,并在activate事件处理程序中调用。如果我需要其中一个或两个,这些是拨打这些电话的正确位置吗?

4

1 回答 1

0

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

它只在第一次加载时才真正重要,并且由于渐进式增强,页面通常在没有 service worker 的情况下正常工作。

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

更新 service worker 时必须调用它。

有关更多信息,您可以查看Service Worker 生命周期文档。

于 2018-10-12T08:41:14.903 回答