請描述一下 cookies,sessionStorage 和 localStorage 的區別


原文:http://blog.csdn.net/lxcao/article/details/52809939

 

相同點:都存儲在客戶端
不同點:

1.存儲大小
  • cookie數據大小不能超過4k。
  • sessionStorage和localStorage 雖然也有存儲大小的限制,但比cookie大得多,可以達到5M或更大。
2.有效時間
  • localStorage    存儲持久數據,瀏覽器關閉后數據不丟失除非主動刪除數據;
  • sessionStorage  數據在當前瀏覽器窗口關閉后自動刪除。
  • cookie          設置的cookie過期時間之前一直有效,即使窗口或瀏覽器關閉
3. 數據與服務器之間的交互方式
  • cookie的數據會自動的傳遞到服務器,服務器端也可以寫cookie到客戶端
  • sessionStorage和localStorage不會自動把數據發給服務器,僅在本地保存。

----------------------------------------------------------------------------------------------------------------------------------------

額外拓展【加分項】:Cookie的操作(有點小難度)防止面試官細問cookie的操作。

設置Cookie 

cookie的幾個要素

cookie的內容:采用 key=value;key=value……存儲,參數名自定義

cookie的過期時間:使用參數expires

cookie的路徑:使用參數path,"/"表示這個網站的頁面,不推薦!容易產生沖突

注意:形如“/pro/index.html”路徑,在google瀏覽器正常,在IE瀏覽器得不到值 

cookie的表示方式示例

 

[javascript]  view plain  copy
 
  1. var name = "jack";  
  2. var pwd = "123";  
  3. var now = new Date();  
  4. now.setTime(now.getTime() +1 * 24 * 60 * 60 * 1000);//轉毫秒  
  5. var path = "/";//可以是具體的網頁  
  6. document.cookie = "name=" + name + ";expires=" + now.toUTCString() + ";path=" + path;//姓名  
  7. document.cookie= "pwd=" + pwd + ";expires=" + now.toUTCString()+ ";path=" + path; //密碼  

 

讀取cookie

獲取cookie內容

 

[html]  view plain  copy
 
  1. vardata=document.cookie;//獲取對應頁面的cookie  

 

解析cookie

方式1:截取字符串

[javascript]  view plain  copy
 
  1. function getKey(key) {  
  2.     var data = document.cookie;  
  3.     var findStr = key + "=";  
  4.     //找到key的位置  
  5.     var index = data.indexOf(findStr);  
  6.     if (index == -1)  
  7.         return null;  
  8.     var subStr = data.substring(index +findStr.length);  
  9.     var lastIndex = subStr.indexOf(";");  
  10.     if (lastIndex == -1) {  
  11.         return subStr;  
  12.  } else {  
  13.         return subStr.substring(0,lastIndex);  
  14.  }  
  15. }  

方式2:使用正則表達式+JSON

[javascript]  view plain  copy
 
  1. function getKey(key) {  
  2.     return JSON.parse("{\"" +document.cookie.replace(/;\s+/gim, "\",\"").replace(/=/gim, "\":\"") + "\"}")[key];  
  3. }  

清除cookie

[javascript]  view plain  copy
 
  1. var name = null;  
  2. var pwd = null;  
  3. var now = new Date();  
  4. var path = "/";//可以是具體的網頁  
  5. document.cookie= "name=" + name + ";expires=" + now.toUTCString()+ ";path=" + path;//姓名  
  6. document.cookie = "pwd=" + pwd + ";expires=" + now.toUTCString()+ ";path=" + path; //密碼  


免責聲明!

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



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