我正在为我的论文研究服务人员。我了解生命周期的工作原理,但我无法理解服务人员的默认更新行为。
当安装一个新的 service worker 时,当安装一个旧的 service worker 时,service worker 将不得不等待激活。使用 self.skipWaiting() 和 self.clients.claim() 可以完全激活 service worker 并控制页面。我不明白为什么这不是默认行为。我能找到的主要原因是保持代码和数据的一致性(https://redfin.engineering/service-workers-break-the-browsers-refresh-button-by-default-here-s-why-56f9417694)。有了对生命周期的一些基本了解,当服务工作者更新或我遗漏了什么时,难道不能同时保持代码和数据的一致性吗?还有其他原因吗?
这种行为在过去是否也有所不同?之后是否添加了 skipWaiting() 和 clients.claim() ?