service-worker - 为什么服务工作者仅在第二次加载时重新启动?
问题描述
在这个文档中,我发现了这个片段:
激活步骤后,Service Worker 将控制其范围内的所有页面,但第一次注册 Service Worker 的页面在再次加载之前不会被控制。
我觉得我不太明白这句话。对我来说,这似乎意味着:
- 当用户请求一个页面时,浏览器总是检查新的服务工作者(绕过任何缓存)。
- 如果存在新的服务人员 - 安装并激活它。
- 等待用户重新加载页面,让新的 service worker 负责。
这对我来说没有意义。为什么只有在用户重新启动页面时才让新的 service worker 负责,为什么不立即让他成为主要的 service worker?
解决方案
由于https://developers.google.com/web/fundamentals/primers/service-workers/lifecycle#activate中解释的一致性, 我将其解释为:您的用户可能正在填写表格。您不希望页面在他的操作过程中改变行为。
推荐阅读
- linux - Docker 容器无法与本地连接的设备通信
- javascript - 使用 Google Maps JavaScript API,是否可以从外部按钮获取数据到 map.data.setStyle 函数中?
- lightningchart - 将自定义值添加到闪电图中的图例
- python - 使用多个 if 条件和 next() 时的 StopIteration 错误/异常/错误
- java - 如何修复 /home/jitpack/build/commons/src/main/res/layout/ AAPT:警告:为外部包 'android' 生成 id 'android:id/icon'
- python-3.x - 是否可以将 Joblib Python 包与双 CPU 主板服务器一起使用?
- python - 展平使用 select_related() 和完全连接的 Django 查询集
- python - 如何在 Django 中编写具有不同过滤器选项的视图函数
- javascript - 如何隐藏 SVG 下超出指定 SVG 的部分?
- kubernetes - 使用 pyspark 将数据帧写入 Kafka 时出现异常