localStorage 和 sessionStorage 屬性允許在瀏覽器中存儲(chǔ) key/value 對(duì)的數(shù)據(jù)。
sessionStorage 用于臨時(shí)保存同一窗口(或標(biāo)簽頁(yè))的數(shù)據(jù),在關(guān)閉窗口或標(biāo)簽頁(yè)之后將會(huì)刪除這些數(shù)據(jù)。
提示: 如果你想在瀏覽器窗口關(guān)閉后還保留數(shù)據(jù),可以使用 localStorage 屬性, 改數(shù)據(jù)對(duì)象沒(méi)有過(guò)期時(shí)間,今天、下周、明年都能用,除非你手動(dòng)去刪除。
1.方法
sessionStorage.key(int index) //返回當(dāng)前 sessionStorage 對(duì)象的第index序號(hào)的key名稱。若沒(méi)有返回null。
sessionStorage.getItem(string key) //返回鍵名(key)對(duì)應(yīng)的值(value)。若沒(méi)有返回null。
sessionStorage.setItem(string key, string value) //該方法接受一個(gè)鍵名(key)和值(value)作為參數(shù),將鍵值對(duì)添加到存儲(chǔ)中;如果鍵名存在,則更新其對(duì)應(yīng)的值。
sessionStorage.removeItem(string key) //將指定的鍵名(key)從 sessionStorage 對(duì)象中移除。
sessionStorage.clear() //清除 sessionStorage 對(duì)象所有的項(xiàng)。
2,存儲(chǔ)數(shù)據(jù)
2.1 采用setItem()方法存儲(chǔ)
sessionStorage.setItem('testKey','這是一個(gè)測(cè)試的value值'); // 存入一個(gè)值
2.2 通過(guò)屬性方式存儲(chǔ)
sessionStorage['testKey'] = '這是一個(gè)測(cè)試的value值';
2.3 存儲(chǔ)Json對(duì)象
sessionStorage也可存儲(chǔ)Json對(duì)象:存儲(chǔ)時(shí),通過(guò)JSON.stringify()將對(duì)象轉(zhuǎn)換為文本格式;讀取時(shí),通過(guò)JSON.parse()將文本轉(zhuǎn)換回對(duì)象。
var userEntity = {
name: 'tom',
age: 22
};
// 存儲(chǔ)值:將對(duì)象轉(zhuǎn)換為Json字符串
sessionStorage.setItem('user', JSON.stringify(userEntity));
// 取值時(shí):把獲取到的Json字符串轉(zhuǎn)換回對(duì)象
var userJsonStr = sessionStorage.getItem('user');
userEntity = JSON.parse(userJsonStr);
console.log(userEntity.name); // => tom
3,讀取數(shù)據(jù)
3.1 通過(guò)getItem()方法取值
sessionStorage.getItem('testKey'); // => 返回testKey對(duì)應(yīng)的值
3.2 通過(guò)屬性方式取值
sessionStorage['testKey']; // => 這是一個(gè)測(cè)試的value值
sessionStorage 鍵值是否為空進(jìn)行判斷
當(dāng) sessionStorage 中未存儲(chǔ)任何鍵值時(shí),若要對(duì)某個(gè)鍵的值是否為空進(jìn)行判斷,可進(jìn)行如下判斷
if (sessionStorage.getItem("key") != null) {
//自定義代碼
}
|