微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何处理由PWA缓存的HTML页面中的CSS和JS的缓存清除?

如何解决如何处理由PWA缓存的HTML页面中的CSS和JS的缓存清除?

我将Web应用程序转换为PWA,并遇到了不知道如何解决的缓存破坏问题。我很久以前为资源文件实现了缓存清除功能,因此我可以编写如下内容

ScriptFileLink("/js/app.js")
CssFileLink("/content/css/style.css")
CssFileLink("/content/themes/base/jquery-ui.css")

,服务器实际上读取每个资源文件以产生校验和,并发出以下HTML:

<script src="/js/app.js?key=d4ed16bbdd836b01a3838f0dd91a60a8" type="text/javascript"></script>
<link href="/content/css/style.css?key=0dddbd7e1aea93616f61c6a00cbc2bb7" rel="stylesheet" type="text/css" />
<link href="/content/themes/base/jquery-ui.css?key=0ffb2eb1fb5bb4236e7900904b79e5ac" rel="stylesheet" type="text/css" />

换句话说,它会生成一个缓存清除密钥,只要文件内容更改,该密钥就会更改。

这在浏览器实际下载HTML页面的情况下非常有效。

但是在PWA先缓存然后再网络的情况下,将缓存HTML页面。我已经实现了一个带有逻辑的服务工作者,可以检查服务器是否对任何资源文件进行了更改,但是随后我将从缓存中删除陈旧的资源文件并替换为新版本,而缓存的HTML页面仍会期望旧版本一个

我可以先进行网络优先,然后再进行缓存,但是在大多数情况下,这是浪费的,因为页面没有更改。

应如何处理以提供一个缓存优先,响应式的脱机应用程序,该应用程序在连接后会更新为最新版本,并且在服务器上找到更改?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。