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

aje*_*rup 4 javascript service-worker

这是关于在 Progressive Web App 中使用的 serviceworker API。任何人都可以帮助我了解 Service Worker安装事件和激活事件之间的区别吗?

以下是我的理解,

  1. 安装事件是注册 Service Worker 后发生的第一个事件。
  2. 安装事件只发生一次 - 我不确定这一点,我可以在页面刷新时看到这个事件运行。所以我对这种说法感到困惑。
  3. 在安装事件之后 - 激活事件触发器。
  4. 每次页面重新加载时都会触发 Activate 事件。

除了上面的陈述,我的问题是两个事件之间到底有什么区别,它们都一个接一个地运行,如果是这样,为什么我们需要两个事件?

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

感谢所有的回应。

Ric*_*non 7

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

缓存您的应用程序可能需要的任何静态文件是一种很好的做法,这意味着您的应用程序不必下载这些文件,除非它们被更新。

如果已经有一个活跃的 Service Worker,新的 Service Worker 将安装在后台 - 但直到没有页面仍在使用旧的 Service Worker 时才会激活。

每次连接到 Service Worker 时都会触发 activate 事件。这是缓存任何额外(可能是动态的)文件的好地方,同时清理旧缓存和与先前版本的 Service Worker 相关的内容。