代码改变世界

HTML5中的本地、WebSql、离线应用存储

2015-01-13 10:15  狼人:-)  阅读(496)  评论(0编辑  收藏  举报

1.   HTML5存储相关API

a)   Localstorage 本地存储

b)   Web Sql DataBase 本地数据库存储

c)   .manifest 离线应用存储

2.   HTML5 localStorage 本地存储:

a)   本地存储是一个window的属性:, 相当于一个大型的Cookie;

b)   window.localStorage :

c)   set方法:

        i.      localStorage.t1 = “aaa”;

       ii.      localStorage[t2] = “bbb”;

     iii.      localStorage.setItem(“t3”, “ccc”);

d)   get方法:

        i.      localStorage.t1;

       ii.      localStorage[t1];

     iii.      localStorage.getItem(“t1”);

e)   delete方法:

        i.      localStorage.removeItem();

       ii.      localStorage.clear(); // 清除所有;

f)   遍历方法:

        i.      localStorage.length;

       ii.      localStorage.key(); 

3.   HTML5 Web Sql Database 数据库:

a)   Web Sql 数据库API 实际上不是HTML5规范的组成部分;

b)   在HTML5之前就已经存在了,是单独的规范;

c)   它是将数据以数据库的形式存储在客户端,根据需求去读取;

d)   跟Storage的区别是: Storage和Cookie都是以键值对的形式存在的;

e)   Web Sql 更方便于检索,允许sql语句查询;

f)   让浏览器实现小型数据库存储功能;

g)   这个数据库是集成在浏览器里面的,目前主流浏览器基本都已支持;

4.   HTML5 Web DataBase 操作:

a)   openDatabase() :

        i.      window.openDatabase(“数据库名”,”指定数据库版本1.0或2.0”,”数据库描述”,数据库大小,字节);

       ii.      创建数据库对象,可以使用已有数据库,也可以创建新的数据库;

     iii.      返回一个对象;

b)   transaction() :

        i.      database.transaction(fn(obj));

       ii.      用于触发操作;参数是一个匿名函数;

c)   executeSql() :

        i.      tx.executeSql(sql语句,sql参数, 返回源,错误);

       ii.      用于执行sql

5.   HTML5 本地离线应用存储:

a)   与HTML5 本地存储、本地数据库的关系;

6.   离线应用:

a)   Web2.0技术鼓励个人参与,每个人都是web内容的撰写者,如微博;

b)   Web应用能够提供离线的功能,让用户在没有网络的地方也能进行内容撰写,等到有网络的时候,再同步到web上;

c)   离线应用在首次加载的时候把所有资源下载下来,缓存到本地,离线应用与浏览器的缓存是不同的,我们可以指定缓存的内容,也可以指定那些东西是需要读取数据库的;

d)   HTML5对离线功能的支持,在第一次访问的时候会去访问服务器,并且下载一个存储清单,从清单中依次下载里面的内容,存储到指定位置,当我们清除浏览器缓存的时候,是不会清除到这些内容的,这些内容是指定存储的,浏览器二次访问的时候,就算是断网了还是可以去访问这些缓存到本地的内容的;用户在断网期间的操作,通过web sql存储下来,等联网的时候将本地的数据传上去;

7.   HTML5 实现离线应用  操作:

a)   配置服务器:

        i.      让服务器支持.manifest类型文件;

       ii.      AddType text/cache-manifest .manifest

b)   创建manifest文件: (存储清单)

        i.      CACHE MANIFEST  // 声明文件头部

       ii.      #This is a comment

     iii.      CACHE  // 离线存储文件

       iv.      NETWORK  // 需要网络调用的文件

        v.      FALLBACK   // 资源失效或不可用时更新文件

    c)  关联manifest文件到 html文档

      

8.   HTML5离线内容更新:

a)   自动更新:

b)   手动更新:

 i.      检测window.applicationCache.status的值;如果是UPDATEREADY

 ii.      使用 window.applicationCache.update更新缓存;