近期一個項目中要求前端h5中記錄一些數(shù)據(jù),這些數(shù)據(jù)一只保存,除非用戶手動清除才失效,其他情況包括會話過期一律不失效,此時就用到了LocalStorage,因為LocalStorage沒有過期時間,除非手動刪除它會一直存在。
SessionStorage, LocalStorage, Cookie這三者都可以被用來在瀏覽器端存儲數(shù)據(jù),而且都是字符串類型的鍵值對形式;
三者的區(qū)別;
- LocalStorage
- SessionStorage
- Cookie
LocalStorage和SessionStorage都是本地存儲,不會被發(fā)送到服務(wù)器上。同時空間比Cookie大很多,一般支持5-10M。 與Cookie類似,每個域名下會有不同的localStorage和SessionStorage實例,而且localStorage可以在多個標簽頁中互相訪問。 其中LocalStorage沒有過期時間,除非手動刪除它會一直存在。而SessionStorage在瀏覽器會話結(jié)束時(關(guān)閉標簽頁,不包括刷新和跳轉(zhuǎn))清空。
Storage的使用
LocalStorage/SessionStorage提供的存儲也是基于字符串的鍵值對。可以通過setItem,getItem來訪問其中的存儲項:
let param = {
"name": "zhangsan",
"age": 18,
"sex": "female",
"phone": "8888888",
};
localStorage.setItem("commonData", JSON.stringify(param));
在控制臺運行效果如下,可以看到localStorage中已經(jīng)存有commonData了;因為它只能存儲字符串,要存JSON只能序列化為字符串;
從localStorage獲取commonData的值:
JSON.parse(localStorage.getItem("commonData"))
清除localStorage某條信息;
`l(xiāng)ocalStorage.removeItem("commonData");`
清除localStorage保存對象的全部數(shù)據(jù)
localStorage.clear();