html5 本地化存儲Web Storage
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>html5 本地化存儲Web Storage</title>
<script type="text/javascript">
/**
* html5中新增web storage 本地化存儲sessionStorage,localStorage,
* 可以替代以前的cookie。
* cookie 可以保存4kb的信息;
* cookie是隨著http發送的,耗費一定的帶寬;
* cookie除了添加,刪除,設置有效期外,很難進行其他操作。
*
*
* sessionStorage: 一次會話有效,類似于servlet中的session;
* localStorage :可以存儲到本地,永久保存。
*
*/
//保存數據
function saveData(){
var mail = document.getElementById("mail");
//將信息保存到session中
sessionStorage.setItem("mail",mail.value);
//將信息存儲到本地
localStorage.setItem("email",mail.value);
}
//讀取數據
function loadData(){
var msg = document.getElementById("msg");
//清除sessionStorage中的信息
sessionStorage.clear();
//從sessionStorage 中獲取信息
var mail = sessionStorage.getItem("mail");
//從localStorage中獲取信息
var email = localStorage.getItem("email");
msg.value=mail+" , "+email;
}
</script>
</head>
<body>
<input type="text" id="mail" >
<textarea rows="10" cols="7" id="msg" placeholder="數據顯示區域">
</textarea>
<input type="button" onclick="saveData();" value="保存數據">
<input type="button" onclick="loadData();" value="讀取數據">
<form>
<table>
<tr>
<td>用戶名:</td>
<td><input type="text" id="name" ></td>
</tr>
<tr>
<td>年齡:</td>
<td><input type="text" id="age" ></td>
</tr>
<tr>
<td>郵箱:</td>
<td><input type="text" id="em" ></td>
</tr>
<tr>
<td></td>
<td><input type="button" value="保存信息" onclick="saveUser();" >
<input type="button" value="查詢信息" onclick="getUser();">
<input type="button" value="保存信息到數據庫" onclick="saveUserToDB();" >
<input type="button" value="從數據庫中查詢信息" onclick="getUserFromDB();">
</td>
</tr>
</table>
</form>
<script type="text/javascript">
/**
* 模擬本地化存儲
*/
function saveUser(){
var user = new Object;
//定義屬性并賦值
user.username=document.getElementById("name").value;
user.age=document.getElementById("age").value;
user.mail = document.getElementById("em").value;
//將對象轉化為json字符串
var data = JSON.stringify(user);
sessionStorage.setItem("user",data);
console.info("保存user對象成功..."+data);
}
function getUser(){
//獲取到的JSON字符串
var user = sessionStorage.getItem("user");
var msg = document.getElementById("msg");
//將json字符串格式化為對象
//下面兩種方法都可行
// var info =JSON.parse(user);
var info = eval('('+user+')');
var result = info.username+","+info.age+","+info.mail;
msg.value =result;
console
.info(user+","+info);//{"username":"23456","age":"wefr","mail":"fesdbg"},[object Object]
}
function saveUserToDB(){
var user = new Object();
user.username=document.getElementById("name").value;
user.age=document.getElementById("age").value;
user.mail = document.getElementById("em").value;
/**
* 類似嵌入式系統中的'SQLite'數據庫,
* Firefox 35.0 不支持,
* chrome支持
* @type {Database}
*/
var db =window.openDatabase("html5",'1.0','WebStorage',2*1024*1024);
console.info("數據庫信息:"+db);
db.transaction(function(tx){
//創建表
var sql='create table if not exists user(id int,name varchar(100),age int ,mail varchar(100) ) ';
tx.executeSql(sql);
});
db.transaction(function(tx){
//保存數據到數據庫
tx.executeSql('insert into user values (1,?,?,?)',[user.username,user.age,user.mail],
//成功的回調函數
function(tx,msg){
console.info("執行sql語句成功:"+msg);
//失敗的回調函數
},function(tx,msg){
console.info("執行sql語句失敗:"+msg);
});
});
}
function getUserFromDB(){
//獲取數據庫
var db =window.openDatabase("html5",'1.0','WebStorage',210241024);
db.transaction(function(tx){
/**
* 執行查詢
*/
tx.executeSql('select id,name,age,mail from user where id=?',[1],function(tr,msg){
/**
* 遍歷結果集
*/
for (var i=0;i<msg.rows.length;i++){
//獲取一條記錄封裝后的對象
//msg.rows.item(i).id ,--.name,--.mail獲取指定的信息
console.info(msg.rows.item(i));
}
});
});
}
</script>
</body>
</html></pre>
本文由用戶 dmw4 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!