H5的localStorage使用總結
一、localstorage 的優缺點
優點:
1、localStorage 的存儲大小是5M,而cookie的存儲大小只有4K,解決了cookie存儲空間不足的問題
2、localStorage 可以將第一次請求的數據直接存儲到本地,相當於是一個針對前端而言的5M的數據庫,相比於cookie可以節約帶寬
缺點:
1、瀏覽器的大小不統一,並且在IE8以上版本才支持
2、對於一些操作,如F5刷新,會發起 cache-control:max-age=0 的請求
3、目前所有的瀏覽器中都會吧localStorage 的值類型限定為string類型,這個在比較常見的JSON中需要做一些轉化
4、localStroage 本質上是對字符串的讀取,如果存儲內容多的話會消耗內存空間,會導致頁面卡頓
5、localStorage 不能被爬蟲抓取到
localStorage 屬於永久性存儲,sessionStorage 屬於當會話結束時,存儲的內容會被清空
二、localStorage 的使用 (增刪改查)
因為某些瀏覽器還不支持localStorage,所以可以先做判斷
if(!window.localStorage){
alert("瀏覽器不支持localStorage!請使用高版本的Chrome或者Firefox");
return false;
}else{
//業務邏輯
}
1、添加本地存儲( 有三種方法,但是推薦使用 getItem() )
var storage = window.localStorage;
storage["a"] = 1; //方法一
storage.b = 2;//方法二
storage.setItem("c", 3);//方法三 推薦
2、獲取本地存儲(有三種方法,推薦使用getItem())
var storage = window.localStorage;
storage.a //1
storage["b"];//2
storage.getItem("c"); //3
3、修改本地存儲
storage.a =4;
storage.a; // 4
4、 刪除本地存儲
清除所有內容: storage.clear();
清除某個鍵值:storage.removeItem("a");
三、其他需要註意的:
我們一般會將JSON存入localStorage ,需要將JSON格式的數據轉化為string類型,需使用 JSON.stringify();
讀取之後要將JSON字符串轉化成JSON對象,使用JSON.parse();
註:其他類型的也需要轉化為string,這裏就不再介紹了,下面只介紹了JSON轉化為string
var storage=window.localStorage;
var data={
name:‘user‘,
sex:‘female‘,
age:18
};
var d=JSON.stringify(data);
storage.setItem("data",d);
var json=storage.getItem("data");//將JSON字符串轉換成為JSON對象輸出
var jsonObj=JSON.parse(json);
console.log(typeof jsonObj);
H5的localStorage使用總結