通过javascript清除并更新html5应用程序缓存

tus*_*ath 11 javascript html5 application-cache

我很多次遇到这个问题,其中一些用户有一个损坏的应用程序缓存(HTML 5).

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

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

有没有办法使用Javascript?

Rob*_*ier 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.
}
Run Code Online (Sandbox Code Playgroud)

  • @Andreas他们只是提供这些信息的众多网站之一,而且它是正确的.这可能是您的问题,如果您不适用于上述条件之一,则不会清除缓存. (2认同)

小智 7

这个很老了但是当我看到一个错误的答案被投票时,我觉得有点暗示......

如果有人查看规范的麻烦,您可以看到代码无法强制浏览器重新加载缓存,除非清单中有更改,那就是"appCache.status == window.applicationCache". UPDATEREADY"是真的.

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

"updateready清单中列出的资源已重新下载,脚本可以使用swapCache()切换到新缓存."

因此,仔细阅读它,您会发现applicationCache在刚刚下载的资源......即...之前的"下载"事件发生时达到了该状态......并且之前的那个"检查"... .