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了解有关该主题的更多信息。

相关文章

HTML5和CSS3实现3D展示商品信息的代码
利用HTML5中的Canvas绘制笑脸的代码
Html5剪切板功能的实现
如何通过HTML5触摸事件实现移动端简易进度条
Html5移动端获奖无缝滚动动画实现
关于HTML5和CSS3实现机器猫的代码