有人可以向我解释HTML 5的缓存清单与使用其他文件头技术告诉浏览器缓存文件有何不同?
答案 0 :(得分:22)
我对你提出的问题的回答感到奇怪,评论和自己回答,但我认为你在这个话题中绝对垄断的近两年就足够了。 ;)
HTML5缓存清单与传统HTTP标头之间的主要区别:
最后一点非常方便,让您轻松交换需要连接的网站部分。包含可选注释的占位符,如果没有连接或任何您想要的内容,用户将无法获得完整功能。
有关支持,请参阅Compatibility table for support of offline web applications in desktop and mobile browsers。毫不奇怪,IE有一些像往常一样的问题,目前Opera Mini不支持它,所以我建议如果你使用缓存清单,那么也使用传统的HTTP头(HTTP / 1.1 Cache-)控制和HTTP / 1.0过期 - 请参阅RFC 2616 sec. 14.9.3)。
您可以更好地控制JavaScript中的整个缓存过程,例如:您可以使用window.applicationCache.swapCache()方法强制更新网站的缓存版本,而无需手动重新加载页面。 HTML5 Rocks(下面的链接)上有一些很好的代码示例,解释了如何将用户更新到最新版本的网站或Web应用程序。
请记住,您需要使用正确的HTTP标头提供缓存清单,特别是与缓存相关的Content-Type和标头,以便您的浏览器知道它是缓存清单,并且应始终检查新版本。例如,这是Github如何为GitHub页面提供缓存清单:
Content-Type: text/cache-manifest
Cache-Control: max-age=0
Expires: [CURRENT TIME]
其中[CURRENT TIME]是格式正确的当前GMT时间(见RFC 2616 sec. 3.3)。
以下是一些可以帮助您入门的资源:
另见我最近对这些相关问题的回答:
答案 1 :(得分:0)
我相信常规磁盘缓存和新的html5脱机缓存之间的主要区别在于,当脱机工作(或没有Internet连接)时,传统的磁盘缓存将不会被用于或不可用于呈现页面,而离线缓存会。