HTML5应用缓存:Manifest已更新,但文件将再次从appcache中获取

Luk*_*lar 8 html5 offlineapps cache-manifest

我有一个带有注释的缓存清单

# Version 3.2
Run Code Online (Sandbox Code Playgroud)

为了更新所有应用程序,我只需更改版本号.它有效,但是:

当我更新清单时,一切都正确更新(新缓存已填满),但实际文件从(旧)缓存中再次获取.当我重装两次时,所有内容都会更新.这种行为是否正确?使用铬21.

谢谢

Har*_*vey 17

是的,这是当前"正确"的行为.这是发生的事情:

当您刚刚对清单文件进行更改并刷新浏览器时,会发生这种情况(假设您在线)

  • 浏览器首先加载缓存中的所有文件
  • 然后浏览器在线检查您的清单文件
  • 它检测到清单文件已更改,然后将继续下载新文件
  • 但是,请记住,此时,您仍然会查看"旧文件",因为浏览器在上网之前已加载旧文件以下载"新文件"
  • 如果此时,如果你再次点击刷新(第二次),你应该得到'新文件'

这是目前的标准行为.有些人放了一些事件处理程序来提示用户再刷新一次(第一次刷新后)

就个人而言,我认为浏览器应该负责提醒用户在完成下载新文件后再刷新一次,但是现在,大多数人都会从"window.applicationCache"中放入事件处理程序来触发事件以帮助管理它.

要查看使用window.applicationCache的示例,请访问:http://www.html5rocks.com/en/tutorials/appcache/beginner/

它位于"更新缓存"部分下.