[Tips]HTML5 Client端的儲存機制-Web Local Storage

  • 799
  • 0
  • 2016-03-05

之前如果有Client端的儲存需求,例如記錄使用者的密碼,或是購物車資料,都是使用Cookie來處理。而HTML5的標準中,加入了其他兩個Client端儲存機制,分別是LocalStorageSessionStorage

這是上網查詢HTML5 Local Storage的一個紀錄連結資訊的筆記,若有侵權,煩請告知,謝謝。

之前如果有Client端的儲存需求,例如記錄使用者的密碼,或是購物車資料,都是使用Cookie來處理。而HTML5的標準中,加入了其他兩個Client端儲存機制,分別是LocalStorageSessionStorage

這是為了因應Cookie的幾個不便利的地方(gipi-簡述HTML5的Client端暫存):

  • Cookie會被涵括在每次的Http Request,即使用不到也會傳。
  • Cookie的資料本身並沒有加密。
  • Cookie的容量才4K

而LocalStorage與SessionStorage這兩者是完全的Client端儲存機制,也就是說,他們並不會被傳回Server端。同時,其容量加大為5MB。這兩個特性,就會讓他們與Cookie的使用時機有所差異。詳細的比較可看這篇文章(咀嚼之味-詳說Cookie, LocalStorage, SessionStorage)。

基本上,使用LocalStorage與SessionStorage很簡單。可以參考:W3School-HTML Local Storage Objects


// 設值
localStorage.setItem("lastname", "Smith");

// 取值       
document.getElementById("result").innerHTML = localStorage.getItem("lastname"); 

它是很簡單的key-value結構,所以如果沒有組織性的使用的話,很容易會因為key的重複使用造成一些很Low的bug產生。所以,有人分享了一個簡單的JavaScript機制,以產生NameSpace的效果-兼顧namespace機制的localStorage存取方式