如何解决Service Worker无法更新浏览器缓存的资源
我目前正在尝试将Service Worker添加到我们的一个应用中,以使其可以离线使用。它对我们的JavaScript和CSS文件效果很好,因为它们将构建哈希作为名称的一部分,因此在更新时,它们会更改名称并从服务器加载。
但是其他一些资源没有构建哈希,因此如果它们发生更改,我会更改服务工作者中的缓存名称。从理论上讲,它会创建一个全新的缓存,并且所有资源都应该是最新的。问题在于我们还使用HTTP缓存,因为并非应用程序的所有部分都可以脱机使用。
文件使用Cache-Control: public,max-age=86400
,因此如果文件被缓存,并且在接下来的24小时之内发生更改,则用户将再次访问该站点。新的缓存已创建,但是资源是从浏览器缓存加载的,并且从未更新。
现在,我们可以只为整个站点禁用浏览器缓存,但这将意味着为不应离线使用且不使用Service Worker的应用程序部分提供缓存的好处越来越少。
我们只能对使用Service Worker的资源禁用缓存,但是由于应用程序的大小和频繁的更改,这将很容易出错,并且维护工作量过多。
有什么方法可以阻止服务工作者使用浏览器缓存或比上面提到的更好的解决方案?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。