HTML5 提供了兩種在客戶端存儲數據的新方法:html
注意:
1)只要清除瀏覽器cookie,兩種存儲方式的數據都會被清除
2)對於不一樣的網站,數據存儲於不一樣的區域,各網站只能訪問其自身的數據
3)瀏覽器之間的數據是各自獨立的(好比Firefox中使用localStorage存儲一組數據,在Chrome瀏覽器下是沒法讀取的)
一、目前大部分的瀏覽器已支持web storage, 固然也能夠檢測一下:web
1 if (!window.localStorage) { 2 alert('您的瀏覽器不支持localStorage'); 3 } 4 5 if (!window.sessionStorage) { 6 alert('您的瀏覽器不支持sessionStorage'); 7 }
二、方法chrome
localStorage,sessionStorage 有5個方法,使用方法一致,如下localStorage爲例:瀏覽器
localStorage.setItem([string] key, [string] value); //本地客戶端存儲一個字符串類型的數據cookie
localStorage.getItem([string] key); //能夠讀取已知key值的valuesession
localStorage.removeItem([string] key); //刪除指定key的itemide
localStorage.clear(); //清除localstorage全部key/value鍵位對網站
三、示例 spa
記錄進入頁面次數,查看 localStorage 與 sessionStorage 存儲數據的變化。firefox
Html:
1 <div> 2 進入頁面次數(localStorage):<mark id="local"></mark> time(s) 3 <br> 4 進入頁面次數(sessionStorage):<mark id="session"></mark> time(s) 5 </div>
Javascript:
1 //記錄localStorage進入頁面次數 2 var count1 = localStorage.getItem('localCount') ? parseInt(localStorage.getItem('localCount')) + 1 : 1; 3 localStorage.setItem('localCount', count1); 4 document.getElementById('local').innerHTML = count1; 5 6 //記錄sessionStorage進入頁面次數 7 var count2 = sessionStorage.getItem('sessionCount') ? parseInt(sessionStorage.getItem('sessionCount')) + 1 : 1; 8 sessionStorage.setItem('sessionCount', count2); 9 document.getElementById('session').innerHTML = count2;
step1:進入chrome刷新頁面10次
step2:關閉chrome再從新打開
說明:關閉頁面後,sessionStorage 的值丟失
step3:第一次進入firefox
說明:瀏覽器之間的數據是各自獨立的,firefox 讀取不到 chrome的客戶端存儲數據
step4:清空chrome的cookie
說明:清空cookie,localStorage 與 sessionStorage 的數據均被清除
源代碼:
1 <!DOCTYPE html> 2 <html> 3 <head lang="en"> 4 <meta charset="UTF-8"> 5 <title>在客戶端存儲數據</title> 6 </head> 7 <body> 8 <div> 9 進入頁面次數(localStorage):<mark id="local"></mark> time(s) 10 <br> 11 進入頁面次數(sessionStorage):<mark id="session"></mark> time(s) 12 </div> 13 <script> 14 if (window.localStorage) { //sessionStorage 15 //記錄localStorage進入頁面次數 16 var count1 = localStorage.getItem('localCount') ? parseInt(localStorage.getItem('localCount')) + 1 : 1; 17 localStorage.setItem('localCount', count1); 18 document.getElementById('local').innerHTML = count1; 19 20 //記錄sessionStorage進入頁面次數 21 var count2 = sessionStorage.getItem('sessionCount') ? parseInt(sessionStorage.getItem('sessionCount')) + 1 : 1; 22 sessionStorage.setItem('sessionCount', count2); 23 document.getElementById('session').innerHTML = count2; 24 } 25 </script> 26 </body> 27 </html>