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();
寫了一個簡單的小例子供大家參考
<!DOCTYPE html> //sessionStorage |
1、沒輸入內容之前點擊“點擊看到提示”出現的窗口 2、輸入內容並點擊“點擊保存”后刷新頁面,再點擊“點擊看到提示”出現的窗口 3、點擊“點擊清除保存”后刷新頁面,再點擊“點擊看到提示”看到的窗口
|