html5本地存储web storage的简单使用

  html5的一个非常cool的功能,就是web storage,类似于之前的cookie,不过与之不同的是,web storage 拥有本地5兆的容量可以存储,而cookie却只有4K,这是完全不能比的优势。

webstrange又分为:localstorage,sessionstorage和本地数据库。

  接下来我就来一一介绍:

1 localstorage

  localstorage 的使用比较简单,方法有:

localStorage.setItem(key,value);//保存数据
localStorage.getItem(key);//读取数据
localStorage.removeItem(key);//删除单个数据
localStorage.clear();//删除所有数据
key:localStorage.key(index);//得到某个索引的值

  一个小demo来展示功能:

 1 (function($){
 2     $(function(){
 3         $.fn.getFormParam=function(){
 4             var serializeObj={};
 5             var array=this.serializeArray();
 6             var str=this.serialize();
 7             $(array).each(function(){
 8                 if(serializeObj[this.name]){
 9                     if($.isArray(serializeObj[this.name])){
10                         serializeObj[this.name].push(this.value);
11                     }else{
12                         serializeObj[this.name]=[serializeObj[this.name],this.value];
13                     }
14                 }else{
15                     serializeObj[this.name]=this.value;
16                 }
17             });
18             return serializeObj;
19         };
20 
21         var storageFile =JSON.parse(window.localStorage.getItem('demo'));
22         $.each(storageFile, function(i, val){
23             $('#demoForm').find('[name="'+i+'"]').val(val);
24         });
25 
26         $('#demoForm').find('[type="submit"]').on('click', function(){
27             var data = $('#demoForm').getFormParam();
28             window.localStorage.setItem('demo', JSON.stringify(data));
29             return false;
30         });
31     });
32 })(jQuery)

html 代码:

 1 <!doctype html>
 2 <html >
 3 <head>
 4     <meta charset="UTF-8">
 5     <script src="jquery-1.10.2.min.js"></script>
 6     <script src="demo.js"></script>
 7     <title>Document</title>
 8 </head>
 9 <body>
10     <form >
11         <p><label><span>姓名</span><input name="name"></label></p>
12         <p><label><span>年龄</span><input name="age"></label></p>
13         <p><label><span>学号</span><input name="number"></label></p>
14         <p><label><span>地址</span><input name="address"></label></p>
15         <p><label><span>爱好</span><input name="habit"></label></p>
16         <p><label><span>其他</span><textarea name="big"  cols="30" rows="10"></textarea></label></p>
17         <p><input type="submit" value="提交"></p>
18     </form>
19 </body>
20 </html>

这样,一个简单的展示localstorage 的 demo就实现了

2 sessionStorage

sessionStorage用法与localStorage用法相同,不过sessionStorage在浏览器关闭网站时候就会清除,而localStorage会一直保存至浏览器中,二者酌情配合使用。

3 本地数据库

熟悉IOS/Android开发的同学,应该会对SQLite数据库比较熟悉

html5中对数据库的操作比较简单,主要有openDatabase方法和transaction方法

用一个对象db来接收openDatabase创建的访问数据库的对象

1 var db = openDatabase(databasename,version,description,size)

其中

databasename:数据库名

version:数据库版本 可不填

desription:数据库描述

size:数据库分配空间大小

transaction方法用一个回调函数作为参数,在函数中执行具体的访问数据库的方法

1 db.transaction(function(tx)){
2     tx.executeSql(sqlQuery,[value1,value2..],dataHandler,errorHandler)
3 });

executeSql方法的四个参数分别是:

  • sqlQuery:需要具体执行的sql语句,create||select||update||delete;
  • [value1,value2..]:sql语句中所有使用到的参数的数组,在executeSql方法中,将sql语句中所要使用的参数先用“?”代替,然后依次将这些参数组成数组放在第二个参数中;
  • dataHandler:执行成功回调函数;
  • errorHandler:执行失败回调函数;