html5的一個(gè)非常cool的功能,就是web storage,類似于之前的cookie,不過(guò)與之不同的是,web storage 擁有本地5兆的容量可以存儲(chǔ),而cookie卻只有4K,這是完全不能比的優(yōu)勢(shì)。
webstrange又分為:localstorage,sessionstorage和本地?cái)?shù)據(jù)庫(kù)。
接下來(lái)我就來(lái)一一介紹:
1、localstorage
localstorage 的使用比較簡(jiǎn)單,方法有:
localStorage.setItem(key,value);//保存數(shù)據(jù)
localStorage.getItem(key);//讀取數(shù)據(jù)
localStorage.removeItem(key);//刪除單個(gè)數(shù)據(jù)
localStorage.clear();//刪除所有數(shù)據(jù)
key:localStorage.key(index);//得到某個(gè)索引的值
一個(gè)小demo來(lái)展示功能:
(function($){
$(function(){
$.fn.getFormParam=function(){
var serializeObj={};
var array=this.serializeArray();
var str=this.serialize();
$(array).each(function(){
if(serializeObj[this.name]){
if($.isArray(serializeObj[this.name])){
serializeObj[this.name].push(this.value);
}else{
serializeObj[this.name]=[serializeObj[this.name],this.value];
}
}else{
serializeObj[this.name]=this.value;
}
});
return serializeObj;
};</p>
<p> var storageFile =JSON.parse(window.localStorage.getItem('demo'));
$.each(storageFile, function(i, val){
$('#demoForm').find('[name="'+i+'"]').val(val);
});</p>
<p> $('#demoForm').find('[type="submit"]').on('click', function(){
var data = $('#demoForm').getFormParam();
window.localStorage.setItem('demo', JSON.stringify(data));
return false;
});
});
})(jQuery)
html 代碼:
<!doctype html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<script src="jquery-1.10.2.min.js"></script>
<script src="demo.js"></script>
<title>Document</title>
</head>
<body>
<form id="demoForm">
<p><label><span>姓名</span><input name="name"></label></p>
<p><label><span>年齡</span><input name="age"></label></p>
<p><label><span>學(xué)號(hào)</span><input name="number"></label></p>
<p><label><span>地址</span><input name="address"></label></p>
<p><label><span>愛(ài)好</span><input name="habit"></label></p>
<p><label><span>其他</span><textarea name="big" id="" cols="30" rows="10"></textarea></label></p>
<p><input type="submit" value="提交"></p>
</form>
</body>
</html>
這樣,一個(gè)簡(jiǎn)單的展示localstorage 的 demo就實(shí)現(xiàn)了
2、sessionStorage
sessionStorage用法與localStorage用法相同,不過(guò)sessionStorage在瀏覽器關(guān)閉網(wǎng)站時(shí)候就會(huì)清除,而localStorage會(huì)一直保存至瀏覽器中,二者酌情配合使用。
3、本地?cái)?shù)據(jù)庫(kù)
熟悉IOS/Android開(kāi)發(fā)的同學(xué),應(yīng)該會(huì)對(duì)SQLite數(shù)據(jù)庫(kù)比較熟悉
html5中對(duì)數(shù)據(jù)庫(kù)的操作比較簡(jiǎn)單,主要有openDatabase方法和transaction方法
用一個(gè)對(duì)象db來(lái)接收openDatabase創(chuàng)建的訪問(wèn)數(shù)據(jù)庫(kù)的對(duì)象
var db = openDatabase(databasename,version,description,size)
其中
databasename:數(shù)據(jù)庫(kù)名
version:數(shù)據(jù)庫(kù)版本 可不填
desription:數(shù)據(jù)庫(kù)描述
size:數(shù)據(jù)庫(kù)分配空間大小
transaction方法用一個(gè)回調(diào)函數(shù)作為參數(shù),在函數(shù)中執(zhí)行具體的訪問(wèn)數(shù)據(jù)庫(kù)的方法
db.transaction(function(tx)){
tx.executeSql(sqlQuery,[value1,value2..],dataHandler,errorHandler)
});
executeSql方法的四個(gè)參數(shù)分別是:
sqlQuery:需要具體執(zhí)行的sql語(yǔ)句,create||select||update||delete;
[value1,value2..]:sql語(yǔ)句中所有使用到的參數(shù)的數(shù)組,在executeSql方法中,將sql語(yǔ)句中所要使用的參數(shù)先用“?”代替,然后依次將這些參數(shù)組成數(shù)組放在第二個(gè)參數(shù)中;
dataHandler:執(zhí)行成功回調(diào)函數(shù);
errorHandler:執(zhí)行失敗回調(diào)函數(shù);