离线应用与客户端存储

just another notes..
  1. 离线检测 HTML5为检测设备是否在线定义了一个navigation.onLine属性,值为true时表示设备能上网,为false是表示设备离线。不同的浏览器之间存在一定的兼容问题,但影响不大,可以直接像下面这样使用:
    if(navigator.onLine){
    }else{
    }
    另外,HTML5还为此定义了两个事件:online和offline,用来监听设备的网络变化。
  2. 应用缓存 HTML5的应用缓存(application cache)简称为appcache,是专门为开发离线web应用而设计的。通过描述文件(manifest file)列出要下载和缓存的资源,如下面的简单例子所示
    CACHE MANIFEST
    #Comment
    
    file.js
    file.css
  3. 另外,要在中的manifest属性中指定这个文件的路径,例如: <html type="text/cache-application" manifest="/offline.manifest"> 应用缓存有许多相关的事件,例如
    • checking:在浏览器为应用缓存查找更新时触发
    • error:在检查更新或下载资源期间发生错误触发
    • noupdate:在检查描述文件发现文件无变化时触发
    • downloading:在开始下载应用程序时触发
    • progress:在文件下载应用缓存的过程中不断的触发
    • updateready:在页面新的应用缓存下载完毕且可以通过swapCache时触发
    • cached:在应用缓存完成可用时触发
    这些事件一般会随着页面的加载顺序顺次触发,也可以通过调用update()方法手工干预,即applicationCache.update();
  4. 数据存储
    1. Cookie Cookie的内容比较多,前段时间被央视315弄得全网一片风雨,各种对Cookie的质疑和解释,今天才认真的了解了一下Cookie,篇幅比较长,完全可以单独写一篇文章了,等到以后有了更多的了解和实践再写这一篇文章吧,暂且只要记住cookie是不安全的就够了
    2. IE用户数据 从IE5.0开始。微软通过一个自定义的行为引入了持久化用户数据的概念,设置方法为在使用css的元素上指定userData行为,如下所示<div style="behavior:url(#default#userData)" id="dateStore"><div> 元素使用userData行为之后,就可以用setAttribute()方法在上面保存数据了,如下所示:
      var dataStore=document.getELementById("dataStore");
      dataStore.setAttribute("name","HUSTecho");
      dataStore.save("author-name");
      调用sava()存储数据后,下载就可以使用load()方法指定同样的数据空间名称来获取数据啦,如下所示
      dataStore.load("authore-name");
      console.log(dataStore.getAttribute("name"));
      如果要删除某个元素数据时,则通过removeAttribute()方法指定属性名称,删除了之后需要再次调用sava()来保存修改,向下面这样:
      dataStore.removeAttribute("name");
      dataStore.sava();
    3. web存储机制
      • storage类型
      • sessionstorage对象
      • globalstorage对象
      • localstorage对象
      • storage事件
      • 限制
      web 存储机制的内容很多,足够单独写一篇文章了
    4. IndexDB 内容很多,需要单独写一篇文章
离线应用和客户端存储的内容比较多,写在一篇文章里面会比较乱,还是把这篇笔记分成三部分来写吧,今天算是介绍一下离线应用和下节预告。。。
posted @ 2013-03-31 20:44  echoHUST  阅读(207)  评论(0编辑  收藏  举报