本地儲存localStorage用法詳解
一、什麼是localStorage?
在HTML5中,新加入了一個localStorage特性,這個特性主要是用來作為本地儲存來使用的,解決了cookie儲存空間不足的問題(cookie中每條cookie的儲存空間為4k),localStorage中一般瀏覽器支援的是5M大小,這個在不同的瀏覽器中localStorage會有所不同。
二、localStorage的優勢與侷限
localStorage的優勢
1、localStorage拓展了cookie的4K限制
2、localStorage會可以將第一次請求的資料直接儲存到本地,這個相當於一個5M大小的針對於前端頁面的資料庫,相比於cookie可以節約頻寬,但是這個卻是隻有在高版本的瀏覽器中才支援的
localStorage的侷限
1、瀏覽器的大小不統一,並且在IE8以上的IE版本才支援localStorage這個屬性
2、目前所有的瀏覽器中都會把localStorage的值型別限定為string型別,這個在對我們日常比較常見的JSON物件型別需要一些轉換
3、localStorage在瀏覽器的隱私模式下面是不可讀取的
4、localStorage本質上是對字串的讀取,如果儲存內容多的話會消耗記憶體空間,會導致頁面變卡
5、localStorage不能被爬蟲抓取到
localStorage與sessionStorage的唯一一點區別就是localStorage屬於永久性儲存,而sessionStorage屬於當會話結束的時候,sessionStorage中的鍵值對會被清空。
三、localStorage的使用
清空localStorage
1 2 |
localStorage.clear()
//
undefined
localStorage
//Storage
{length: 0} 儲存資料
|
儲存資料
1 2 3 |
localStorage.setItem( "name" , "caibin" )
//儲存名字為name值為caibin的變數
localStorage.name
= "caibin" ;
//
等價於上面的命令
localStorage
//
Storage{name: "caibin", length: 1} 讀取資料
|
讀取資料
1 2 3 4 5 6 7 8 |
localStorage.getItem( "name" )
//caibin,讀取儲存在localStorage物件里名為name的變數的值
localStorage.name
//
"caibin"
localStorage.valueOf()
//讀取儲存在localStorage上的所有資料
localStorage.key(0)
//
讀取第一條資料的變數名(鍵值)
//遍歷並輸出localStorage裡儲存的名字和值
for ( var
i=0; i<localStorage.length;i++){
console.log( 'localStorage裡儲存的第' +i+ '條資料的名字為:' +localStorage.key(i)+ ',值為:' +localStorage.getItem(localStorage.key(i)));
}
|
刪除某個變數