HTML5本地存儲

jopen 10年前發布 | 18K 次閱讀 HTML5 前端技術

HTML5中的 Web Storage 包括兩種存儲方式: sessionStorage 和 localStorage 本地離線存儲,同域下只能存儲 5M 的空間;IE6.7中可以用 UserData 來實現

sessionStorage 用于本地存儲一個會話(session)中的數據,這些數據只有在同個會話中的頁面才能訪問并且當會話結束后數據也隨之銷毀,因此 seesionStorage 不是一種持久化的本地存儲,僅僅是會話級別的存儲;

localStorage,用于持久化存儲本地數據,如果不手動刪除則會一直存在,就算把瀏覽器關了,清了瀏覽器緩存,關機等十天半個月再開,一樣的存在;但是,它只是存在同一個域名下;

localStorage 和 sessionStorage操作

localStorage 和 sessionStorage 都具有相同的操作方法:

注意,下面 value 的值始終是字符串,即使傳的是一個數字也會被轉換成字符串

  • localStorage.setItem(“key”, “value”),設置 key 的值為 value,如果 key 已經存在則更新其值為 value

    localStorage[“key”] = value,也可以這樣設置值,不推薦

    localStorage.key = value,這樣也行,不推薦

  • localStorage.getItem(“key”),獲取 key 的值,如果 key 不存在返回 null

    localStorage[“key”],也可以這樣獲取值,不推薦

    localStorage.key,這樣也可以獲取值,不推薦

  • localStorage.removeItem(“key”),刪除 key 對應的數據

  • localStorage.clear(),清空所有 localStorage 保存的數據

  • localStorage.length,數據總量

  • localStorage.key(index),獲取 key

  • 存儲 JSON 格式數據

    JSON.stringify(data),將一個對象轉換成 JSON 格式的數據串,返回轉換后的串

    JSON.parse(data),將數據解析成 js 對象,返回解析后的對象

  • HTML5 的本地存儲,還提供了一個 storage 事件,可以對鍵值對的改變進行監聽,如果我們同時打開了同域名下的多個頁面,這時在其中一個頁面中對 localStorage 有操作,那其它同域的頁面就會觸發這個事件

    對于事件對象 e,是一個 StorageEvent 對象,提供了一些實用的屬性,可以很好的觀察鍵值對的變化:

    • e.key,被修改的鍵名

    • e.oldValue,被修改的鍵對應的舊的值

    • e.newValue,被修改的鍵對應的新的值

    • e.url,解發 storage 事件的 url

    • e.storageArea,當前 Storage 的引用(session 或 local)

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!