html5 數據存儲應用詳解 localStorage sessionstorage 登錄


  在這以前,客戶端的存儲功能都是通過cookie來實現。由於cookie是對每個服務器的請求來傳遞,所以cookie不適合大量數據存儲。使得cookie速度很慢,效率不高。

在h5中數據不是由每個服務器的請求來實現的,而是只有在請求時使用數據,這樣使在不影響網站性能的情況下存儲大量數據成為可能。

cookie安全性不好存儲不超過4kb每次的http請求都必須附帶cookie

localStorage:

沒有時間限制,當關閉瀏覽器窗口時不會被刪除 。不是一種持久化的本地存儲,僅僅是會話級別的存儲。

sessionStorage:針對具體某一個session進行數據存儲,當關閉瀏覽器窗口時會被刪除。用於持久化的本地存儲,除非主動刪除數據,否則數據是永遠不會過期的。

sessionstorage 對象

sessionStoraage.setItem(key,value)

參數key,表示被保存內容的鍵名。返回鍵名如果沒有返回null

參數value,鍵值。成功設置鍵名后不允許修改,不能重復。有重復的鍵名,只能修改對應的鍵值,即用新增重復的鍵名取代原有重復的鍵名

getitem()讀取數據

 1 // JavaScript Document
 2 function $$(id){
 3     return document.getElementById(id);
 4     }
 5     function txtName_change(v){
 6         var strName=v.value;
 7         sessionStorage.setItem("strName",strName);
 8         $$("pStatus").style.display="block";
 9         $$("pStatus").innerHTML=sessionStorage.getItem("strName");
10         }
11         //點擊讀取調用
12         function btnGetValue_click(){
13             $$("pStatus").style.display="block";
14             $$("pStatus").innerHTML=sessionStorage.getItem("strName");
15             }
 1 <!doctype html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5 <title>無標題文檔</title>
 6 <script type="text/javascript" language="jscript" src="js7-3.js"></script>
 7 <link href="css7-3.css" rel="stylesheet" type="text/css">
 8 </head>
 9 
10 <body>
11 <fieldset>
12 <legend>sessionStorage 對象保存與讀取臨時數據</legend>
13 <input name="txtName" type="text" class="inpputtxt" onChange="txtName_change(this);" size="30px">
14 <input name="btnGetValue" type="button" class="inputbtn" onClick="btnGetValue_click();" value="讀取">
15 <p id="pStatus"></p>
16 </fieldset>
17 </body>
18 </html>

localStorage對象

localStorage.setItem(key,value)

和sessionStorage保存數據參數說明相同。

區別:調用對象不同,當使用localStorage對象保存數據后,可以調用對象中的getItem方法讀取指定鍵名所對應的鍵值

localStorage.getItem(key)

清除localStorage對象保存的內容removeItem();

localStorage.removeItem(key)

如果刪除成功,則會刪除所有與鍵名相對應得數據

 

 1 // JavaScript Document
 2 function $$(id){
 3     return document.getElementById(id);
 4     }
 5     //頁面加載時調用函數
 6     function pageload(){
 7         var strName=localStorage.getItem("keyName");
 8         var strPass=localStorage.getItem("keyPass");
 9         if(strName){
10             $$("txtName").value=strName;
11             }
12             if(strPass){
13                 $$("txtPass").value=strPass;
14                 }
15         }
16         //點擊登錄后調用的函數
17         function btnLogin_click(){
18             var strName=$$("txtName").value
19             var strPass=$$("txtPass").value;
20             localStorage.setItem("keyName",strName);
21             if($$("chkSave").checked){
22                 localStorage.setItem("keyPass",strPass);
23                 
24                 }else{
25                     localStorage.removeItem("keyPass");
26                     }
27                     $$("spnStatus").className="status";
28                     $$("spnStatus").innerHTML="登錄成功!";
29             }
 1 <!doctype html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5 <title>保存並讀取登錄用戶名與密碼</title>
 6 <script type="text/javascript" src="js7-4.js" language="jscript"></script>
 7 </head>
 8 
 9 <body onLoad="pageload();">
10 <form id="frmLogin" action="#">
11 <fieldset>
12 <legend>登錄</legend>
13 <ul>
14 <li class="li_top">
15 <span id="spnStatus"></span>
16 </li>
17 <li>名稱:
18 <input id="txtName" class="inputtxt" type="text">
19 </li>
20 <li>密碼:
21 <input id="txtPass" type="password" class="inputtxt">
22 </li>
23 <li>
24 <input id="chkSave" type="checkbox">保存密碼
25 </li>
26 <li>
27 <input name="btnLogin" class="inputbtn" value="登錄" type="button" onClick="btnLogin_click();">
28 <input name="rstLogin" class="inputbtn" type="reset" value="取消">
29 </li>
30 </ul>
31 </fieldset>
32 </form>
33 </body>
34 </html>

 

步驟

1.通過localStorage對象中的getItem()方法獲取指定鍵名的鍵值,並保存在變量中

2.當用戶單擊登錄時會觸發onClick事件調用btnLogin_click();

通過兩個變量

var strName=$$("txtName").value
			var strPass=$$("txtPass").value;

  保存文本框中輸出的用戶名和密碼,然后調用localStorage對象中的setItem()方法,將用戶名作為鍵名“keyname”保存,

如果選擇保存密碼則將密碼作為鍵名“keypass”保存

否則調用removeItem()方法刪除記錄.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM