在页面加载时,Service Worker 会在后台安装。
1) 服务工作者脚本的下载是否与页面加载并行发生并延迟加载?
2)安装事件中提到的资产是否与页面加载并行下载和缓存,或者在页面加载事件完成后
3) 资产缓存是否尊重 HTML Native 缓存,还是每次都重新下载?
在页面加载时,Service Worker 会在后台安装。
1) 服务工作者脚本的下载是否与页面加载并行发生并延迟加载?
2)安装事件中提到的资产是否与页面加载并行下载和缓存,或者在页面加载事件完成后
3) 资产缓存是否尊重 HTML Native 缓存,还是每次都重新下载?
第一次,当您调用 register 时,服务工作者将被获取。对于更新检查,浏览器会在每次导航时执行此操作,但会等到加载后以避免与页面竞争。
Service Worker 的生命周期与您的网页完全分开。
1) 服务工作者脚本的下载是否与页面加载并行发生并延迟加载?
一旦您调用服务工作者,就会下载服务工作者register()
,它会并行执行,因此不会延迟加载。
2)安装事件中提到的资产是否与页面加载并行下载和缓存,或者在页面加载事件完成后。
任何源自 Service Worker 的网络请求都不会阻塞主线程或文档加载。
3) 资产缓存是否尊重 HTML Native 缓存,还是每次都重新下载?
来自服务工作者的请求尊重本机缓存(http 缓存),但您可以根据需要使用该属性修改此行为cache
。
从问题来看,您似乎认为来自 Service Worker 的注册与文档加载相协调,但事实并非如此。一旦调用register()
或发现服务工作者更新后,注册服务工作者的所有阶段都会与网页加载分离(并并行运行)。