服务工作者安装事件与激活事件

时间:2017-09-18 17:14:22

标签: javascript service-worker

这与Progressive Web App中使用的serviceworker API有关。 任何人都可以帮助我理解服务工作者 安装事件和激活事件之间的区别吗?

以下是我的理解,

  1. 安装事件是注册服务工作者后发生的第一个事件。
  2. 安装事件只发生一次 - 我不确定这一点,我可以看到这个事件在页面刷新时运行。所以我对那句话感到困惑。
  3. 安装事件后 - 激活事件触发器。
  4. 每次页面重新加载时激活事件触发器。
  5. 除了上述陈述之外,我的问题是两个事件之间究竟有什么区别,它们都是一个接一个地运行,如果是这样,为什么我们需要两个事件?

    更新:   共享可能有用的资源。我正在读这个。      https://developers.google.com/web/fundamentals/instant-and-offline/service-worker/lifecycle

    感谢所有回复。

1 个答案:

答案 0 :(得分:2)

安装事件仅在发现服务工作者文件是新文件时触发 - 与现有服务工作者(按字节比较)或此页面/站点遇到的第一个服务工作者不同。

优良作法是缓存应用程序可能需要的任何静态文件,这意味着除非更新这些文件,否则您的应用程序不必下载这些文件。

如果已有活动服务工作者,则新服务工作程序将安装在后台 - 但在没有页面仍在使用旧服务工作程序之前不会处于活动状态。

每次与服务工作者建立连接时,都会触发activate事件。这是一个缓存任何额外(可能是动态的)文件的好地方,同时清理旧的缓存和与以前版本的服务工作者相关的事情。