浏览器如何确定清单已更新?

时间:2014-05-01 03:44:49

标签: html5 google-chrome firefox html5-appcache offline-caching

我注意到触摸或清单文件元数据的其他修改不会触发更新(至少在使用Google Chrome进行测试时)。浏览器将触发noupdate事件,除非我在文件中更改了更有意义的内容,例如添加一行空格。

浏览器如何将旧清单与新清单进行比较?它是否下载新的清单并进行比较?它是从文件头中以某种方式确定的吗?

1 个答案:

答案 0 :(得分:0)

http://diveintohtml5.info/offline.html包含了加载清单时浏览器遵循的流程的一个很好的解释。

简言之:

  • 服务器尝试获取清单的新副本
  • 如果您有旧版本,它会将清单文件的内容与旧清单进行比较 - 因此,如果您的索引页面已更改,但您没有新文件,则会触发noupdate。对清单内容的任何更改,与添加空格(如您所见)一样微不足道,将导致您列出的资产被重新加载。
  • 处理此问题的一种常见方法是在清单中添加SHA或其他内容作为注释,生成的方式会在任何资产本身发生变化时发生变化。