浏览器探究 - HTML5规范之Application Cache(2)

2.1 Application Cache

参考自:Application Cache API

2.1.4 applicationCache对象

该对象是window对象的直接子对象,window.applicationCache
基类:DOMApplicationCache
事件列表:

事件接口触发条件后续事件
checkingEvent用户代理检查更新或者在第一次尝试下载manifest文件的时候,本事件往往是事件队列中第一个被触发的noupdate, downloading, obsolete, error
noupdateEvent检测出manifest文件没有更新
downloadingEvent用户代理发现更新并且正在取资源,或者第一次下载manifest文件列表中列举的资源progress, error, cached, updateready
progressProgressEvent用户代理正在下载资源manifest文件中的需要缓存的资源progress, error, cached, updateready
cachedEventmanifest中列举的资源已经下载完成,并且已经缓存
updatereadyEventmanifest中列举的文件已经重新下载并更新成功,接下来js可以使用swapCache()方法更新到应用程序中
obsoleteEventmanifest的请求出现404或者410错误,应用程序缓存被取消
errorEventmanifest的请求出现404或者410错误,更新缓存的请求失败
errorEventmanifest文件没有改变,但是页面引用的manifest 文件没有被正确地下载
errorEvent在取manifest列举的资源的过程中发生致命的错误
errorEvent在更新过程中manifest文件发生变化用户代理会尝试立即再次获取文件

属性:status 返回缓存的状态

可选值匹配常量描述
0appCache.UNCACHED未缓存
1appCache.IDLE闲置
2appCache.CHECKING检查中
3appCache.DOWNLOADING下载中

方法

方法名描述
update()发起应用程序缓存下载进程
abort()取消正在进行的缓存下载
swapcache()切换成本地最新的缓存环境

manifest解析机制
这里写图片描述

注意事项

  1. 站点离线存储的容量限制是5M
  2. 如果manifest文件,或者内部列举的某一个文件不能正常下载,整个更新过程将视为失败,浏览器继续全部使用老的缓存
  3. 引用manifest的html必须与manifest文件同源,在同一个域下
  4. 在manifest中使用的相对路径,相对参照物为manifest文件
  5. CACHE MANIFEST字符串应在第一行,且必不可少
  6. 系统会自动缓存引用清单文件的 HTML 文件
  7. manifest文件中CACHE则与NETWORK,FALLBACK的位置顺序没有关系,如果是隐式声明需要在最前面
  8. FALLBACK中的资源必须和manifest文件同源
  9. 当一个资源被缓存后,该浏览器直接请求这个绝对路径也会访问缓存中的资源。
  10. 站点中的其他页面即使没有设置manifest属性,请求的资源如果在缓存中也从缓存中访问
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值