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