12

我经常遇到这个问题,其中一些用户的应用程序缓存损坏(HTML 5)。

每次有新版本时,我都会更新清单文件,但有时有些用户会收到损坏的应用程序缓存。

在这种情况下,我想完全清除他们的应用程序缓存中的内容并从服务器加载所有新内容。

有没有办法使用Javascript?

4

2 回答 2

13

根据下面的文章

http://www.w3schools.com/html5/html5_app_cache.asp

有三种方法可以重置应用程序缓存,它们是:

  1. 用户清除浏览器缓存
  2. 清单文件被修改
  3. 应用程序缓存以编程方式更新

有关以编程方式更新应用程序缓存的更多信息,请参见此处:

http://www.html5rocks.com/en/tutorials/appcache/beginner/

它看起来像这样:

var appCache = window.applicationCache;

appCache.update(); //this will attempt to update the users cache and changes the application cache status to 'UPDATEREADY'.

if (appCache.status == window.applicationCache.UPDATEREADY) {
  appCache.swapCache(); //replaces the old cache with the new one.
}
于 2012-08-05T15:27:00.230 回答
7

这个已经很老了,但是当我看到一个错误的答案被投票时,我想给一些提示....

如果有麻烦看规范,你可以看到代码没有办法强制浏览器重新加载缓存,除非清单中有变化,那就是“appCache.status == window.applicationCache. UPDATEREADY”是真的。

看这里http://www.w3.org/TR/2011/WD-html5-20110525/offline.html

“updateready manifest中列出的资源已经重新下载,脚本可以使用swapCache()切换到新的缓存。”

因此,仔细阅读它,您会发现 applicationCache 在刚刚下载的资源时进入该状态......也就是说......之前的“下载”事件发生......并且在该事件之前是“检查”...... .

于 2015-05-12T20:00:58.127 回答