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

html5 – 强制applicationCache重新加载缓存文件

我正在使用HTML5 applicationCache来存储一些页面的许多Javascript,CSS,图像等文件。如果我更新这些文件之一,浏览器将不会重新加载它。我已经尝试过以下内容

>在页面加载时调用applicationCache.update()
>侦听applicationCache的updateready事件,并调用swapCache()和window.location.reload()
>为清单文件本身添加时间戳注释,强制浏览器实现清单已更改

当然这不可能这么难。如何说服浏览器重新请求一些缓存文件

解决方法

要强制下载任何新的(或更改)文件,您必须更新清单文件(添加版本号注释或任何更改将执行)。
可能发生的是您收到错误。最常见的是,您可能不会使用正确的MIME类型(文本/缓存清单)来提供清单。您是否正确配置了您的服务器?检查这一点的最简单的方法是在Chrome中打开页面,并在控制台和AppCache下的资源选项卡上查看是否有错误(它会抱怨正在投放的文件不正确,您还可以使用curl -I命令:
curl -I $manifest_file_URL

您的清单文件也可能正在缓存(您可以设置过期标题以使其过期)。还要保持重新加载顺序:您的页面将首先从AppCache加载(如果存在),则浏览器检查清单文件是否已更新。如果是,请下载并放置在新版本的缓存中,但这不会自动更新页面(也不会swapCache()),您将不得不再次刷新页面(至少)。

另请参阅this presentation了解有关该主题的更多信息。

原文地址:https://www.jb51.cc/html5/168934.html

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