【问题标题】:Purge and update html5 application cache through javascript通过 javascript 清除和更新 html5 应用程序缓存
【发布时间】:2012-08-02 19:00:56
【问题描述】:

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

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

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

有没有使用 Javascript 的方法?

【问题讨论】:

标签: javascript html application-cache


【解决方案1】:

根据下面的文章

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.
}

【讨论】:

  • 我仍然面临同样的问题,我认为是因为清单文件实际上没有改变。因此,存储的内容不会得到更新。仅重新获取清单文件。
  • @Andreas 他们只是提供此信息的众多网站之一,而且是正确的。这可能是您的问题,如果您不适用上述条件之一,则不会清除缓存。
  • 第一个链接坏了
【解决方案2】:

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-14
    • 1970-01-01
    • 1970-01-01
    • 2021-07-30
    相关资源
    最近更新 更多