以前我們在本地存儲數(shù)據(jù)都是用document.cookie來存儲的,但是由于其的存儲大小只有4K左右,解析也很復(fù)雜,給開發(fā)帶來了諸多的不便.不過現(xiàn)在html5出了web的存儲,彌補了cookie的不足,而且開放起來也是相當(dāng)?shù)姆奖?/span>
web存儲分兩類
sessionStorage
容量大小約為5M左右,該方式的生命周期為關(guān)閉瀏覽器窗口為止
localStorage
容量大小約為20M左右, 存儲的數(shù)據(jù)不會隨著用戶瀏覽時會話過期而過期,但會應(yīng)用戶的請求而刪除。瀏覽器也因為存儲空間的限制或安全原因刪除它們.而且類型存儲的數(shù)據(jù)可以同一個瀏覽器的多個窗口共享
注意點:只能存儲字符串,如果是json對象的話,可以將對象JSON.stringify() 編碼后存儲
方法詳解:
setItem(key, value) 設(shè)置存儲內(nèi)容
getItem(key) 讀取存儲內(nèi)容
removeItem(key) 刪除鍵值為key的存儲內(nèi)容
clear() 清空所有存儲內(nèi)容
下面我們就給個給大家看一下他的寫法:
//更新 function update() { window.sessionStorage.setItem(key, value); } //獲取 function get() { window.sessionStorage.getItem(key); } //刪除 function remove() { window.sessionStorage.removeItem(key); } //清空所有數(shù)據(jù) function clear() { window.sessionStorage.clear(); }
查看效果的話,我們以谷歌瀏覽器為例子:
以前的老版本的話,是沒有Application的,老版本的為Resource
存儲完數(shù)據(jù)后的
下面我就給大家展示記錄用戶名和密碼的經(jīng)典例子
當(dāng)記住密碼的復(fù)選框勾上的時候,下次打開的時候,用戶名和密碼就不需要在重新輸入了
html部分:
<label for="">
用戶名: <input type="text" class="userName"/>
</label>
<br/><br/>
<label for="">
密 碼: <input type="password" class="pwd"/>
</label>
<br/><br/>
<label for="">
<input type="checkbox" class="ckb"/>
記住密碼
</label>
<br/><br/>
<button>登錄</button>
js部分
var userName=document.querySelector('.userName'); var pwd=document.querySelector('.pwd'); var sub=document.querySelector('button'); var ckb=document.querySelector('.ckb'); sub.onclick=function(){// 如果記住密碼 被選中存儲,用戶信息 if(ckb.checked){ window.localStorage.setItem('userName',userName.value); window.localStorage.setItem('pwd',pwd.value); }else{ window.localStorage.removeItem('userName'); window.localStorage.removeItem('pwd'); }// 否則清除用戶信息 } window.onload=function(){// 當(dāng)頁面加載完成后,獲取用戶名,密碼,填充表單 userName.value=window.localStorage.getItem('userName'); pwd.value=window.localStorage.getItem('pwd'); }