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 lang="zh"> 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 id="demoForm"> 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" id="" 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:执行失败回调函数;