細數(shù)localStorage的用法及使用注意事項
localStorage 介紹
在HTML5中,為了解決cookie存儲空間不足的問題(cookie中每條cookie的存儲空間為4k),增加了一個 localStorage,主要是用來作為本地存儲的;
localStorage 中一般瀏覽器支持的容量大小是5M,針對不同的瀏覽器,localStorage容量大小會有所不同。
localStorage 使用
localStorage的瀏覽器支持情況
localStorage代碼中的使用
在項目中,使用localStorage首先需要做的先判斷瀏覽器是否支持;
if(!window.localStorage){ alert("瀏覽器不支持localstorage"); }else{ //主邏輯業(yè)務(wù) console.log('Hello world!'); }
localStorage 設(shè)置語法
if(!window.localStorage){ alert("瀏覽器支持localstorage"); }else{ var storage=window.localStorage; //第一種設(shè)置方式: storage["a"]=1; //第二種設(shè)置方式: storage.b=1; //第三種設(shè)置方式: storage.setItem("c",3); console.log(typeof storage["a"]); //打印出結(jié)果:String console.log(typeof storage["b"]); //打印出結(jié)果:String console.log(typeof storage["c"]); //打印出結(jié)果:String }
在瀏覽器中查看結(jié)果:
localStorage 獲取
//第一種方法讀取 var a=storage.a; console.log(a); //第二種方法讀取 var b=storage["b"]; console.log(b); //第三種方法讀取 var c=storage.getItem("c"); console.log(c);
注意:localStorage的設(shè)置和讀取方式,官方推薦使用 setItem / getItem;
localStorage 修改
var getVal = localStorage.getItem('myStorage'); if( getVal != null ){ localStorage.setItem('myStorage','setOk'); console.log('修改成功'); }else{ console.log('未找到myStorage, getVal返回值為 null'); }
localStorage刪除
var getVal = localStorage.getItem('myStorage'); if( getVal != null ){ localStorage.removeItem('myStorage'); console.log('刪除成功'); }else{ console.log('未找到myStorage,getVal返回值為 null'); }
localStorage 清除當前域名下所有內(nèi)容
localStorage.clear();
localStorage中存入 JSON 對象,需先轉(zhuǎn)換成 JSON 字符串,再寫入,在讀取時再轉(zhuǎn)換成 JSON 對象:(否則會報錯)
var storage=window.localStorage; var data={ name:'zhangSan', sex:'1' }; //將對象轉(zhuǎn)換為 String ,如果不轉(zhuǎn),在存入localStorage后,讀取出來轉(zhuǎn)換 json對象會報錯 var setData=JSON.stringify(data); storage.setItem("data",setData); //將JSON字符串轉(zhuǎn)換成為JSON對象輸出 var jsonString=storage.getItem("data"); console.log(typeof jsonString); //打印出 String; var jsonObj=JSON.parse(jsonString); console.log(typeof jsonObj); //打印出 Object;
localStorage 注意事項
瀏覽器的大小不統(tǒng)一,并且在IE8以上的IE版本才支持localStorage這個屬性
目前所有的瀏覽器中都會把localStorage的值類型限定為string類型,這個在對我們?nèi)粘1容^常見的JSON對象類型需要一些轉(zhuǎn)換
localStorage在瀏覽器的隱私模式下面是不可讀取的
localStorage本質(zhì)上是對字符串的讀取,如果存儲內(nèi)容多的話會消耗內(nèi)存空間,會導致頁面變卡
localStorage不能被爬蟲抓取到
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
js頁面跳轉(zhuǎn)的問題(跳轉(zhuǎn)到父頁面、最外層頁面、本頁面)
js頁面跳轉(zhuǎn):本頁面跳轉(zhuǎn),上一層頁面跳轉(zhuǎn),最外層的頁面跳轉(zhuǎn),下面為大家大家分享下不同頁面之家的跳轉(zhuǎn)問題,感興趣的朋友可以學習下2013-08-08詳解webpack 打包文件體積過大解決方案(code splitting)
這篇文章主要介紹了webpack 打包文件體積過大解決方案(code splitting),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-04-04完美解決input[type=number]無法顯示非數(shù)字字符的問題
下面小編就為大家?guī)硪黄昝澜鉀Qinput[type=number]無法顯示非數(shù)字字符的問題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-02-02js使用Canvas將多張圖片合并成一張的實現(xiàn)代碼
這篇文章主要介紹了js使用Canvas將多張圖片合并成一張的實現(xiàn)代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-04-04javascript如何動態(tài)加載表格與動態(tài)添加表格行
在某些時候需要動態(tài)加載表格與動態(tài)添加表格行,在接下來的文章中將為大家介紹下javascript是如何做到的,感興趣的朋友不要錯過2013-11-11