細(xì)數(shù)localStorage的用法及使用注意事項(xiàng)
localStorage 介紹
在HTML5中,為了解決cookie存儲(chǔ)空間不足的問題(cookie中每條cookie的存儲(chǔ)空間為4k),增加了一個(gè) localStorage,主要是用來(lái)作為本地存儲(chǔ)的;
localStorage 中一般瀏覽器支持的容量大小是5M,針對(duì)不同的瀏覽器,localStorage容量大小會(huì)有所不同。
localStorage 使用
localStorage的瀏覽器支持情況
localStorage代碼中的使用
在項(xiàng)目中,使用localStorage首先需要做的先判斷瀏覽器是否支持;
if(!window.localStorage){ alert("瀏覽器不支持localstorage"); }else{ //主邏輯業(yè)務(wù) console.log('Hello world!'); }
localStorage 設(shè)置語(yǔ)法
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 清除當(dāng)前域名下所有內(nèi)容
localStorage.clear();
localStorage中存入 JSON 對(duì)象,需先轉(zhuǎn)換成 JSON 字符串,再寫入,在讀取時(shí)再轉(zhuǎn)換成 JSON 對(duì)象:(否則會(huì)報(bào)錯(cuò))
var storage=window.localStorage; var data={ name:'zhangSan', sex:'1' }; //將對(duì)象轉(zhuǎn)換為 String ,如果不轉(zhuǎn),在存入localStorage后,讀取出來(lái)轉(zhuǎn)換 json對(duì)象會(huì)報(bào)錯(cuò) var setData=JSON.stringify(data); storage.setItem("data",setData); //將JSON字符串轉(zhuǎn)換成為JSON對(duì)象輸出 var jsonString=storage.getItem("data"); console.log(typeof jsonString); //打印出 String; var jsonObj=JSON.parse(jsonString); console.log(typeof jsonObj); //打印出 Object;
localStorage 注意事項(xiàng)
瀏覽器的大小不統(tǒng)一,并且在IE8以上的IE版本才支持localStorage這個(gè)屬性
目前所有的瀏覽器中都會(huì)把localStorage的值類型限定為string類型,這個(gè)在對(duì)我們?nèi)粘1容^常見的JSON對(duì)象類型需要一些轉(zhuǎn)換
localStorage在瀏覽器的隱私模式下面是不可讀取的
localStorage本質(zhì)上是對(duì)字符串的讀取,如果存儲(chǔ)內(nèi)容多的話會(huì)消耗內(nèi)存空間,會(huì)導(dǎo)致頁(yè)面變卡
localStorage不能被爬蟲抓取到
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
js完美實(shí)現(xiàn)@提到好友特效(兼容各大瀏覽器)
本文給大家分享的是一則使用javascript完美實(shí)現(xiàn)兼容各大瀏覽器的@好友自動(dòng)提示的特效,是根據(jù)百度貼吧的效果模仿來(lái)的,推薦給小伙伴們,希望大家能夠喜歡。2015-03-03js頁(yè)面跳轉(zhuǎn)的問題(跳轉(zhuǎn)到父頁(yè)面、最外層頁(yè)面、本頁(yè)面)
js頁(yè)面跳轉(zhuǎn):本頁(yè)面跳轉(zhuǎn),上一層頁(yè)面跳轉(zhuǎn),最外層的頁(yè)面跳轉(zhuǎn),下面為大家大家分享下不同頁(yè)面之家的跳轉(zhuǎn)問題,感興趣的朋友可以學(xué)習(xí)下2013-08-08JavaScript入門系列之知識(shí)點(diǎn)總結(jié)
JavaScript 是屬于網(wǎng)絡(luò)的腳本語(yǔ)言。本文是小編日常收集整理些javascript入門基礎(chǔ)知識(shí),對(duì)js新手朋友非常有幫助,對(duì)js入門知識(shí)點(diǎn)感興趣的朋友一起學(xué)習(xí)吧2016-03-03詳解webpack 打包文件體積過大解決方案(code splitting)
這篇文章主要介紹了webpack 打包文件體積過大解決方案(code splitting),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2018-04-04完美解決input[type=number]無(wú)法顯示非數(shù)字字符的問題
下面小編就為大家?guī)?lái)一篇完美解決input[type=number]無(wú)法顯示非數(shù)字字符的問題。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2017-02-02js使用Canvas將多張圖片合并成一張的實(shí)現(xiàn)代碼
這篇文章主要介紹了js使用Canvas將多張圖片合并成一張的實(shí)現(xiàn)代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04javascript如何動(dòng)態(tài)加載表格與動(dòng)態(tài)添加表格行
在某些時(shí)候需要?jiǎng)討B(tài)加載表格與動(dòng)態(tài)添加表格行,在接下來(lái)的文章中將為大家介紹下javascript是如何做到的,感興趣的朋友不要錯(cuò)過2013-11-11js獲取數(shù)組對(duì)象中的全部key和value值
本文主要介紹了js獲取數(shù)組對(duì)象中的全部key和value值,主要使用JavaScript的?map()?函數(shù)和?values()?迭代器來(lái)實(shí)現(xiàn)取出數(shù)組對(duì)象的所有key值和value值,感興趣的可以了解下2024-01-01