HTML5离线应用缓存:强制刷新所有内容?

HTML5离线应用缓存:强制刷新所有内容?,html,offline-caching,html5-appcache,Html,Offline Caching,Html5 Appcache,我的小HTML5应用程序需要在服务器上重新部署。我知道我只需触摸.appcache文件,就可以在下次访问时将每个浏览器更新到文件的最后一个版本 清单如下所示: CACHE MANIFEST #Version: 201209251353 index.html apple-touch-icon.png css/styles.css data/dump.bin img/background.png img/sprites.png js/core.js js/jquery-1.8.1.min.js v

我的小HTML5应用程序需要在服务器上重新部署。我知道我只需触摸.appcache文件,就可以在下次访问时将每个浏览器更新到文件的最后一个版本

清单如下所示:

CACHE MANIFEST
#Version: 201209251353

index.html
apple-touch-icon.png
css/styles.css
data/dump.bin
img/background.png
img/sprites.png
js/core.js
js/jquery-1.8.1.min.js
vid/walkthrough.mov
在“touch”中,我添加了一条评论(#Version:),我的意思是在内容发生变化时随时更新

奇怪的是,有些文件被更新了。对于isntance,并非所有的同事都会获得最新的core.js,但仍然会显示一个旧的walkthrough.mov

是否有一种简单的机制强制更新缓存中的所有文件

我在SO上找到了以下代码,并将其包含在脚本中,希望它能有所帮助。不确定这有多必要:(

您在清单和内容上设置了什么

如果(例如)已将
vid/walkthrough.mov
的到期日设置为未来一个月,并且该文件足够小,可以放入浏览器缓存(注意:不是应用程序缓存),则浏览器将从浏览器缓存中的版本刷新应用程序缓存,而不是通过网络再次请求它(如果从获取文件起不到一个月)


如果您已经在清单文件上设置了未来的到期日期,那么在某些浏览器的某些版本中,这可能会导致未检测到更新的清单。

我正在使用的另一个解决方案是重命名appcache文件,但不太好。然后,所有内容都将被刷新,因为appcache将丢失。

谢谢!这样做是否足够好将appcache中所有文件的
Expires
标题设置为1994?它仍然可以脱机使用吗?
    // Application cache refresh
    window.addEventListener('load', function(e) {

      window.applicationCache.addEventListener('updateready', function(e) {
        if (window.applicationCache.status == window.applicationCache.UPDATEREADY) {
          // Browser downloaded a new app cache.
          // Swap it in and reload the page to get the new hotness.
          window.applicationCache.swapCache();
          if (confirm('A new version of this site is available. Load it?')) {
            window.location.reload();
          }
        } else {
          // Manifest didn't changed. Nothing new to server.
        }
      }, false);

    }, false);