1. 程式人生 > >HTML5的LocalStorage和sessionStorage的使用

HTML5的LocalStorage和sessionStorage的使用

之前寫layui總結的時候提到過sessionStorage

這裡在詳細的記錄一下

這個東西非常有用 ,頁面之間相互傳值很輕鬆,解決了很多問題//////////////

html5中的Web Storage包括了兩種儲存方式:sessionStorage和localStorage。

一、區別

HTML5 提供了兩種在客戶端儲存資料的新方法:

  • localStorage - 沒有時間限制的持久的資料儲存,只要你不主動刪除可以想存多久存多久。
  • sessionStorage - 針對一個 session 的資料儲存,這些資料只有在同一個會話中的頁面才能訪問,當會話結束後資料也隨之銷燬(例如你在網頁上儲存一些資料後關閉網頁再重新開啟,儲存的資料就沒有了)。因此sessionStorage不是一種持久化的本地儲存,僅僅是會話級別的儲存。

之前,這些都是由 cookie 完成的。但是 cookie 不適合大量資料的儲存,因為它們由每個對伺服器的請求來傳遞,這使得 cookie 速度很慢而且效率也不高。在 HTML5 中,資料不是由每個伺服器請求傳遞的,而是隻有在請求時使用資料。它使在不影響網站效能的情況下儲存大量資料成為可能。對於不同的網站,資料儲存於不同的區域,並且一個網站只能訪問其自身的資料。

二、瀏覽器支援情況

瀏覽器的支援除了IE7及以下不支援外,其他標準瀏覽器都完全支援(ie及FF需在web伺服器裡執行),值得一提的是IE總是辦好事,例如IE7、IE6中的UserData其實就是javascript本地儲存的解決方案。通過簡單的程式碼封裝可以統一到所有的瀏覽器都支援web storage。
要判斷瀏覽器是否支援localStorage可以使用下面的程式碼:
if(window.localStorage){ alert("瀏覽支援localStorage")}else{ alert("瀏覽暫不支援localStorage")}//或者if(typeof window.localStorage == 'undefined'){ alert("瀏覽暫不支援localStorage")}

三、操作方法

localStorage和sessionStorage都具有相同的操作方法,例如setItem、getItem、removeItem、clear等。

setItem儲存value

用途:將value儲存到key欄位
用法:.setItem( key, value)
程式碼示例:sessionStorage.setItem("key", "value"); localStorage.setItem("site", "js8.in");

getItem獲取value

用途:獲取指定key本地儲存的值
用法:.getItem(key)
程式碼示例:var value = sessionStorage.getItem("key"); var site = localStorage.getItem("site");

removeItem刪除key

用途:刪除指定key本地儲存的值
用法:.removeItem(key)
程式碼示例:sessionStorage.removeItem("key"); localStorage.removeItem("site");

clear清除所有的key/value

用途:清除所有的key/value
用法:.clear()
程式碼示例:sessionStorage.clear(); localStorage.clear();