一、什么是localStorage?
在HTML5中,新加入了一個(gè)localStorage特性,這個(gè)特性主要是用來作為本地存儲(chǔ)來使用的,解決了cookie存儲(chǔ)空間不足的問題(cookie中每條cookie的存儲(chǔ)空間為4k),localStorage中一般瀏覽器支持的是5M大小,這個(gè)在不同的瀏覽器中l(wèi)ocalStorage會(huì)有所不同。
二、localStorage的優(yōu)勢與局限
localStorage的優(yōu)勢
1、localStorage拓展了cookie的4K限制
2、localStorage會(huì)可以將第一次請求的數(shù)據(jù)直接存儲(chǔ)到本地,這個(gè)相當(dāng)于一個(gè)5M大小的針對于前端頁面的數(shù)據(jù)庫,相比于cookie可以節(jié)約帶寬,但是這個(gè)卻是只有在高版本的瀏覽器中才支持的
localStorage的局限
1、瀏覽器的大小不統(tǒng)一,并且在IE8以上的IE版本才支持localStorage這個(gè)屬性
2、目前所有的瀏覽器中都會(huì)把localStorage的值類型限定為string類型,這個(gè)在對我們?nèi)粘1容^常見的JSON對象類型需要一些轉(zhuǎn)換
3、localStorage在瀏覽器的隱私模式下面是不可讀取的
4、localStorage本質(zhì)上是對字符串的讀取,如果存儲(chǔ)內(nèi)容多的話會(huì)消耗內(nèi)存空間,會(huì)導(dǎo)致頁面變卡
5、localStorage不能被爬蟲抓取到
localStorage與sessionStorage的唯一一點(diǎn)區(qū)別就是localStorage屬于永久性存儲(chǔ),而sessionStorage屬于當(dāng)會(huì)話結(jié)束的時(shí)候,sessionStorage中的鍵值對會(huì)被清空。
三、localStorage的使用
清空localStorage
localStorage.clear() // undefined localStorage //Storage {length: 0} 存儲(chǔ)數(shù)據(jù)
存儲(chǔ)數(shù)據(jù)
localStorage.setItem("name","caibin") //存儲(chǔ)名字為name值為caibin的變量 localStorage.name = "caibin"; // 等價(jià)于上面的命令 localStorage // Storage{name: "caibin", length: 1} 讀取數(shù)據(jù)
讀取數(shù)據(jù)
localStorage.getItem("name") //caibin,讀取保存在localStorage對象里名為name的變量的值 localStorage.name // "caibin" localStorage.valueOf() //讀取存儲(chǔ)在localStorage上的所有數(shù)據(jù) localStorage.key(0) // 讀取第一條數(shù)據(jù)的變量名(鍵值) //遍歷并
刪除某個(gè)變量
localStorage.removeItem("name"); //undefined localStorage // Storage {length: 0} 可以看到之前保存的name變量已經(jīng)從localStorage里刪除了
檢查localStorage里是否保存某個(gè)變量
// 這些數(shù)據(jù)都是測試的,是在我當(dāng)下環(huán)境里的,只是demo哦~ localStorage.hasOwnProperty('name') // true localStorage.hasOwnProperty('sex') // false
將數(shù)組轉(zhuǎn)為本地字符串
var arr = ['aa','bb','cc']; // ["aa","bb","cc"] localStorage.arr = arr //["aa","bb","cc"] localStorage.arr.toLocaleString(); // "aa,bb,cc"
將JSON存儲(chǔ)到localStorage里
var students = { xiaomin: { name: "xiaoming", grade: 1 }, teemo: { name: "teemo", grade: 3 } } students = JSON.stringify(students); //將JSON轉(zhuǎn)為字符串存到變量里 console.log(students); localStorage.setItem("students",students);//將變量存到localStorage里 var newStudents = localStorage.getItem("students"); newStudents = JSON.parse(students); //轉(zhuǎn)為JSON console.log(newStudents); // 打印出原先對象
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com