代码之家  ›  专栏  ›  技术社区  ›  Matt

更新单页webapps上的服务工作程序

  •  0
  • Matt  · 技术社区  · 6 年前

    我在一个单页的webapp上工作,并且正在实现服务工作者。我知道我需要手动更新服务人员,因为单页应用程序没有传统的导航事件,但是,我不清楚 clients.claim() self.skipWaiting() .

    skipWaiting() 打电话来 install 事件,以及 claim() 打电话来 activate 事件处理程序。如果我需要他们中的一个或两个,这些地方是打这些电话的正确地点吗?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Jessica Rodriguez    6 年前

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

    它只在第一次加载时才真正重要,而且由于 增强页面通常在没有服务人员的情况下运行良好 无论如何。

    为了 skipWaiting() ,这将导致您的服务工作者在当前活动的工作者进入等待阶段(或如果它已经处于等待阶段,则立即)时将其踢出并激活自身。这不会导致你的工作人员跳过安装,只是等待。在 install 事件。

    有关详细信息,您可以查看 service worker lifecycle