HTML5 的应用缓存(application cache),或者简称为 appcache,是专门为开发离线 Web
应用而设计的。Appcache 就是从浏览器的缓存中分出来的一块缓存区。要想在这个缓存中保存数据,可以使用一个 描述文件(manifest
file),列出要下载和缓存的资源。下面是一个简单的描述文件示例。
CACHE MANIFEST
#Comment
file.js
file.css
在最简单的情况下,描述文件中列出的都是需要下载的资源,以备离线时使用。
要将描述文件与页面关联起来,可以在html中的 manifest 属性中指定这个文件的路径,例如:

以上代码告诉页面,/offline.manifest 中包含着描述文件。这个文件的 MIME 类型必须是text/cache-manifest。
虽然应用缓存的意图是确保离线时资源可用,但也有相应的 JavaScript API 让你知道它都在做什么。 这个 API 的核心是 applicationCache 对象,这个对象有一个 status 属性,属性的值是常量,表示应用缓存的如下当前状态。

应用缓存还有很多相关的事件,表示其状态的改变。以下是这些事件:

一般来讲,这些事件会随着页面加载按上述顺序依次触发。不过,通过调用 update()方法也可以手工干预,让应用缓存为检查更新而触发上述事件。
applicationCache.update();
update()一经调用,应用缓存就会去检查描述文件是否更新(触发 checking
事件),然后就像页面刚刚加载一样,继续执行后续操作。如果触发了 cached 事件,就说明应用缓存已经准备就绪,不会再发生其他操作了。如果触发了
updateready 事件,则说明新版本的应用缓存已经可用,而此时你需要调用 swapCache() 来启用新应用缓存。

支持 HTML5 应用缓存的浏览器有 Firefox 3+、Safari 4+、Opera 10.6、Chrome、iOS 3.2+版
Safari 及 Android 版 WebKit。在 Firefox 4 及之前版本中调用 swapCache() 会抛出错误。
网友评论