我一直在检查这个主题的很多主题,但似乎无法找到明确的答案。
问题:
服务人员是否检查导入的脚本是否存在字节大小差异,如果存在差异,则触发SW更新。
在GitHub中,我经历过:
并跟进了这些:
大多数文章来自2016/17,他们说这应该实施。在GitHub上甚至提到有关此工作的工作已经开始,但仅此而已,没有明确的地位,或者我可能只是错过了它?
有关这方面的任何信息都会有所帮助。
答案 0 :(得分:1)
根据this,从版本68开始,chrome会在请求更新服务工作者脚本时忽略HTTP缓存。对 importScripts的请求仍将通过HTTP缓存。但这只是默认设置 - 一个新的注册选项,updateViaCache可用,可以控制这种行为。
updateViaCache选项示例:
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('/service-worker.js', {
updateViaCache: 'none'
});
}
当设置为' none'时,在向顶级/service-worker.js或任何导入的脚本(例如假设的路径/)发出请求时,将不会查询HTTP缓存。 /import.js。
答案 1 :(得分:0)
它实际上是SW文件本身的文件大小差异。如果您在第31行查看此SW example,则每次有更新时,变量CACHE_VERSION
都会更新。这将使浏览器能够转储旧版本并从服务器获取新版本。