天天看點

LocalStorage本地存儲

  localstorage,即"web存儲",某些浏覽器供應商也叫"本地存儲"、"dom存儲",原本作為html5标準的一部分,後來因為某些原因被抽離出來作為單獨的web應用标準。localstorage提供了一種方式,讓web頁面在用戶端浏覽器中以鍵值對的形式存儲本地字元串資料,無論是使用者是離開該站點,重新整理,關閉浏覽器還是其他操作,存儲的資料依然存在。

一、localstorage與cookie

  localstorage與cookie一樣,都是在用戶端浏覽器下存儲資料,但是又有不同:

  1、cookie是document的屬性,值類型為string,localstorage是window的屬性,值類型為object;

  2、cookie會随着每一次http請求附帶發送,無論伺服器端是否需要,而且未加密(基于ssl的站點除外);localstorage不會,除非手動将其發送到遠端伺服器,否則隻單純存儲在用戶端本地;

  3、cookie最大為4kb,localstorage在每個域下最大為5mb;

  4、就支援性而言,主流浏覽器如ie6+,chrome,firefox都支援cookie,但是低版本的ie如ie67不支援localstorage。

二、localstorage操作

  ie對localstorage的操作需要在非本地環境(非file://...)下進行才能看到效果。

  1、判斷浏覽器支援性

  2、localstorage的屬性和方法

  1)擷取 getitem(key) 或

localstorage[key]  

   2)修改 setitem(key, value) 或者 localstorage[key] = value

  3)删除指定的key, removeitem(key)

  4)删除所有key

  5) length 用來擷取存儲區所有資料的個數

   6) key 用來擷取localstorage指定索引值的key

  注意:localstorage對象在操作setitem的屬性的順序并不一定是實際存儲在localstorage上的索引順序,localstorage在setitem執行完後,标準浏覽器如chrome,firefox等以及高版本的ie9+會在内部按照key的unicode進行一次排序,但是ie678則隻是按照屬性定義的順序輸出,不對key進行排序,如:  

三、localstorage事件

  localstorage提供了監聽localstorage實際發生變化的事件storage,任何時候隻要setitem(),

getitem(), clear(), removeitem()方法被調用,且實際改動了資料時,都會在window對象上觸發storage事件。