离线存储

一、支持性检测

if(window.applicationCache){
    //浏览器支持离线存储
}else{
    //浏览器不支持离线存储
}

    支持度:IE9及以下版本不支持
二、manifest文件
  • 引入manifest文件:
    • <html manifest="app.manifest">
  • manifest文件格式(注释:#开头):
  • CACHE MANIFEST
    #第一行必须为cache manifest
    CACHE:
    #需要缓存的都放在CACHE:下面
    css/b.css
    
    #需要总是从网络请求的放在NETWORK:下面
    css/a.css
    
    FALLBACK
    #访问失败后,重定向
    css/c.css css/a.css
    • CACHE:将指定的文件全部缓存到本地
    • NETWORK:指定的文件总是从网络上请求最新的
    • FALLBACK:指定的文件若是找不到,会被重定向到新的地址
三、状态
  • applicationCache.status
    • 0   ===    未缓存
    • 1   ===    空闲(缓存为最新状态)
    • 2   ===    检查中
    • 3   ===    下载中
    • 4   ===    更新就绪
    • 5   ===    缓存过期
 
四、update:主动更新缓存
//每隔5秒检查一次更新
    setInterval(function(){
        applicationCache.update();
    },5000);
 
五、事件
updateready事件:当有新的缓存,并更新完以后,会触发此事件
 
progress事件:当有新的缓存,并处于正在下载的过程中时,会不断触发此事件。
  • progress中的event对象包含:loaded和total。loaded代表当前已经加载完成的文件,total为总共需要更新的文件数。
 
其他事件:
  • checking事件:正在检查
  • downloading事件:正在下载
  • updatereadey事件:更新完成
  • obsolete事件:缓存过期
  • cached事件:空闲,缓存为最新状态
  • error事件:报错
  • noupdate事件:检查更新结束,没有需要更新。
posted @ 2015-06-09 10:51  心胸广阔  阅读(421)  评论(0编辑  收藏  举报