這篇文章主要介紹了html5本地存儲的localstorage 、本地數(shù)據(jù)庫、sessionStorage簡單使用示例,需要的朋友可以參考下
html5的一個非常cool的功能,就是web storage,類似于之前的cookie,不過與之不同的是,web storage 擁有本地5兆的容量可以存儲,而cookie卻只有4K,這是完全不能比的優(yōu)勢。
webstrange又分為:localstorage,sessionstorage和本地數(shù)據(jù)庫。
接下來我就來一一介紹:
1、localstorage
localstorage 的使用比較簡單,方法有:
localStorage.setItem(key,value);//保存數(shù)據(jù)
localStorage.getItem(key);//讀取數(shù)據(jù)
localStorage.removeItem(key);//刪除單個數(shù)據(jù)
localStorage.clear();//刪除所有數(shù)據(jù)
key:localStorage.key(index);//得到某個索引的值
一個小demo來展示功能:
(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é)號</span><input name="number"></label></p>
<p><label><span>地址</span><input name="address"></label></p>
<p><label><span>愛好</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>
這樣,一個簡單的展示localstorage 的 demo就實(shí)現(xiàn)了
2、sessionStorage
sessionStorage用法與localStorage用法相同,不過sessionStorage在瀏覽器關(guān)閉網(wǎng)站時候就會清除,而localStorage會一直保存至瀏覽器中,二者酌情配合使用。
3、本地數(shù)據(jù)庫
熟悉IOS/Android開發(fā)的同學(xué),應(yīng)該會對SQLite數(shù)據(jù)庫比較熟悉
html5中對數(shù)據(jù)庫的操作比較簡單,主要有openDatabase方法和transaction方法
用一個對象db來接收openDatabase創(chuàng)建的訪問數(shù)據(jù)庫的對象
var db = openDatabase(databasename,version,description,size)
其中
databasename:數(shù)據(jù)庫名
version:數(shù)據(jù)庫版本 可不填
desription:數(shù)據(jù)庫描述
size:數(shù)據(jù)庫分配空間大小
transaction方法用一個回調(diào)函數(shù)作為參數(shù),在函數(shù)中執(zhí)行具體的訪問數(shù)據(jù)庫的方法
db.transaction(function(tx)){
tx.executeSql(sqlQuery,[value1,value2..],dataHandler,errorHandler)
});
executeSql方法的四個參數(shù)分別是:
sqlQuery:需要具體執(zhí)行的sql語句,create||select||update||delete;
[value1,value2..]:sql語句中所有使用到的參數(shù)的數(shù)組,在executeSql方法中,將sql語句中所要使用的參數(shù)先用“?”代替,然后依次將這些參數(shù)組成數(shù)組放在第二個參數(shù)中;
dataHandler:執(zhí)行成功回調(diào)函數(shù);
errorHandler:執(zhí)行失敗回調(diào)函數(shù);