1. 程式人生 > >H5的localStorage使用總結

H5的localStorage使用總結

類型 需要 問題 一個 else tor ole 我們 清除

一、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使用總結