Appcache就是从浏览器缓存中分出来的一块缓存区。要想在这个缓存中保存数据,可以使用一个描述文件(manifest file)列出要缓存和下载的资源
例如:
CACHE MANIFEST
#Coment
file.js
file.css
更多有关描述文件的内容请参见:http://html5doctor.com/go-offline-with-application-cache
要将描述文件与页面关联起来,可以在<html>中的manifest属性中指定这个文件的路径
<html manifest = "/offline.manifest">
以上代码告诉页面,/offline.manifest中包含着描述文件,这个文件的mime类型必须是text/cache-manifest
JavascriptAPI让你知道她都在做什么,这个API的核心是applicationCache对象,这个对象有一个status属性,属性的值是常量,表示应用缓存的如下当前状态:
0:无缓存,既没有与页面相关的应用缓存
1:闲置,即应用缓存未得到更新
2.:检查中,即正在下载描述文件并检查更新
3:下载中,即应用缓存正在下载描述文件中指定的资源
4:更新完成,即应用缓存已经更新了资源,而且所有资源都已下载完毕,可以通过swapCache()来使用了
5:废弃,即应用缓存的描述文件已经不存在了,因此页面无法再访问应用缓存
应用缓存还有很多相关的事件,表示其状态改变。
checking:在浏览器为应用缓存查找更新时触发
error:在检查更新或下载资源期间发生错误时触发
noupdate:在检查描述文件发现文件无变化时触发
downloading:在开始下载应用缓存资源时触发
progress:在文件下载应用缓存的过程中持续触发
updateready:在页面新的应用缓存下载完毕且可以通过swapCache()时触发
cached:在应用缓存完整可用时触发
一般来讲,这些事件会随着页面加载按上述顺序依次触发。不过,通过调用update()方法也可以手工干预
applicationCache.update();
update()一经调用,应用缓存就会去检查描述文件是否更新(触发checking事件),然后就像页面刚刚加载一样,继续执行后续操作。如果触发了cached,就说明应用缓存已经准备就绪,不会再发生其他操作了。