HTML5 LocalStorage 本地存儲原理詳解

  首先天然是檢測瀏覽器是否支持本地存儲。在HTML5中,本地存儲是一個window的屬性,包括localStorage和sessionStorage,從名字應該能夠很清楚的辨認兩者的區別,前者是一直存在本地的,後者只是伴隨着session,窗口一旦關閉就沒了。兩者用法徹底相同,這裏以localStorage爲例。瀏覽器

  if(window.localstorage){session

  alert('this brower supports localstorage');this

}else{localstorage

  alert('this brower not supports localstorage)rem

}字符串

  存儲數據的方法就是直接給window.localStorage添加一個屬性,例如:window.localStorage.a 或者 window.localStorage["a"]。它的讀取、寫、刪除操做方法很簡單,是以鍵值對的方式存在的,以下:get

  localStorage.setItem("a","isaac");//設置a的值爲"isaac"it

  var a = localStorage.getItem("a");//獲取a的值io

  localStorage.removeItem("a");//清除a的值function

  最推薦使用的天然是getItem()和setItem(),清除鍵值對使用removeItem()。若是但願一次性清除全部的鍵值對,可使用clear()。另外,HTML5還提供了一個key()方法,能夠在不知道有哪些鍵值的時候使用,以下:

  var  storage = window.localStorage;

  function showStorage(){

  for(var i = 0;i<storage.length;i++){

  //key(i)得到相應的鍵,再用getItem得到相應的鍵值    

  document.write(storage.key(i)+":"+storage.getItem(storage.key(i))+"<br>")

  }

}

  須要注意的是,HTML5本地存儲只能存字符串,任何格式存儲的時候都會被自動轉爲字符串,因此讀取的時候,須要本身進行類型的轉換。這也就是上一段代碼中parseInt必需要使用的緣由。

  另外,在iPhone/iPad上有時設置setItem()時會出現詭異的QUOTA_EXCEEDED_ERR錯誤,這時通常在setItem以前,先removeItem()就ok了。

相關文章
相關標籤/搜索