为什么更改 HTML5 离线清单文件并调用 swapCache 方法后资源文件不刷新

发布于 2024-12-11 05:38:00 字数 512 浏览 0 评论 0原文

我正在 chrome 14 中测试离线 Web 应用程序。并在清单中列出了一些资源文件,例如:

CACHE MANIFEST
#version 1
./img/BG.jpg
./img/BtnDisable.gif
./img/BtnDown.gif
./img/BtnUp.gif

加载缓存后,我将“./img/BG.jpg”文件替换为新图像,然后更改了清单版本文件到2,最后刷新页面。

从控制台中,我可以看到每个资源都触发了“onprogress”事件,最后触发了“updateready”事件。我在“updateready”的监听器中调用了swapCache方法。

但之后,当我尝试访问图像标签中的“BG.jpg”或直接在地址栏中输入它的URL时。图像仍然是旧的“BG.jpg”。

我在 Safari 5.1 中也发现了这个问题。我的Web容器是apache tomcat 7。

我是否误解了离线机制并犯了一些错误?

那么如何更新客户端浏览器的缓存文件呢?

I'm testing offline web application in chrome 14. and listed some resource files in manifest such as:

CACHE MANIFEST
#version 1
./img/BG.jpg
./img/BtnDisable.gif
./img/BtnDown.gif
./img/BtnUp.gif

and after cache is loaded I replaced the "./img/BG.jpg" file to a new image, then changed the version of manifest file to 2, and finally refreshed page.

from the console, I can see "onprogress" event is triggered for each resource and finally "updateready" event is triggered. I called swapCache method in the listener of "updateready".

But after that , when I try to access "BG.jpg" in an Image tag or directly input it's URL in the address bar. the Image is still old "BG.jpg".

And I also found this issue in Safari 5.1. My web container is apache tomcat 7.

Do I misunderstand the offline mechanism and made some mistakes?

So How can I update the cached files of the client browser?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

冰魂雪魄 2024-12-18 05:38:00

试试这个:

CACHE MANIFEST
#version 2
./img/BG.jpg?v=2
./img/BtnDisable.gif?v=2
./img/BtnDown.gif?v=2
./img/BtnUp.gif?v=2

Try this:

CACHE MANIFEST
#version 2
./img/BG.jpg?v=2
./img/BtnDisable.gif?v=2
./img/BtnDown.gif?v=2
./img/BtnUp.gif?v=2
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文