中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

HTML5中web Storage的存儲方式有幾種

發布時間:2021-09-13 17:47:35 來源:億速云 閱讀:188 作者:小新 欄目:web開發

這篇文章主要為大家展示了“HTML5中web Storage的存儲方式有幾種”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“HTML5中web Storage的存儲方式有幾種”這篇文章吧。

前言

HTML5 的 web Storage 存儲方式有兩種:localStorage 和 sessionStorage。

這兩種方式都是通過鍵值對保存數據,存取方便,不影響網站性能。他們的用法相同,存儲時間不同。
localStorage 的數據保存在本地硬件上,可以永久保存,可以手動調用api清除數據。sessionStorage 保存在 session 對象中,會在瀏覽器關閉時被清除。

web Storage 的大小在瀏覽器上是有限制的,不同瀏覽器大小會有區別,在主流瀏覽器中,大小約為 5M,用來存儲普通數據其實已經足夠。

用法

以 localStorage 為例,sessionStorage 用法一樣:

setItem

保存數據:localStorage.setItem(key,value);

示例:

localStorage.setItem('name','Hello World');

當 key 相同時會覆蓋之前的 value,用于修改數據。如果 value 為對象,需轉為 json 字符串,否則你讀取出來的將會是 [object Object]

getItem

讀取數據:localStorage.getItem(key);

示例:

localStorage.getItem('name');       // Hello World

removeItem

刪除單個數據:localStorage.removeItem(key);

示例:

localStorage.removeItem('name');
localStorage.getItem('name');       // null

刪除 key 為 name 的數據后,loaclStorage 里已經獲取不到該數據,則返回 null;

clear

刪除所有數據:localStorage.clear();

示例:

localStorage.clear();

此時會把 localStorage 中的所有數據都刪除。

key

得到某個索引的key:localStorage.key(index);
示例:

localStorage.setItem('name1','Hello World');
localStorage.setItem('name2','Hello Linxin');
localStorage.key(1);                // name2

獲取到索引為 1 的 key,即 name2。

構造函數

在實際項目中,可能需要多次對 localStorage 進行操作,我們可以通過一個構造函數來更好的操作。

示例:

var localEvent = function (item) {
    this.get = function () {
        return localStorage.getItem(item);
    }
    this.set = function (val) {
        localStorage.setItem(item, val);
    }
    this.remove = function () {
        localStorage.removeItem(item);
    }
    this.clear = function () {
        localStorage.clear();
    }
}

// 使用new字符把構造函數實例化出多個對象
var local1 = new localEvent('name1');
var local2 = new localEvent('name2');

local1.set('Hello World');
local2.set('Hello Linxin');

local1.get();               // Hello World
local2.get();               // Hello Linxin

這里只是簡單的演示,像我們平時在項目中可能要把對象存儲起來,就需要在代碼里做些處理。

監聽 storage 事件

可以通過監聽 window 對象的 storage 事件并指定其事件處理函數,當頁面中對 localStorage 或 sessionStorage 進行修改時,則會觸發對應的處理函數。

window.addEventListener('storage',function(e){
    console.log('key='+e.key+',oldValue='+e.oldValue+',newValue='+e.newValue);
})

觸發事件的時間對象(e 參數值)有幾個屬性:

  • key : 鍵值。

  • oldValue : 被修改前的值。

  • newValue : 被修改后的值。

  • url : 頁面url。

  • storageArea : 被修改的 storage 對象。

注意:在谷歌瀏覽器中,需要在不同標簽頁中修改 storage 才會觸發該事件,即 網頁A 監聽該事件,在 網頁B 中修改 localStorage,則 網頁A 會觸發事件函數。但是在 IE 中,在同個網頁修改 localStorage 都會觸發該事件。

調試

谷歌瀏覽器自帶調試工具(chrome devtools)非常好用,可以用來調試  localStorage 和 sessionStorage。打開瀏覽器按f12調出調試工具,可以看到 Application ,點擊打開可以看到左邊欄有 Storage,包括了 localStorage、sessionStorage、IndexedDB等,選中我們要調試的網站域名,可以看到右邊有對應的 key 和 value,可以通過右鍵進行編輯或刪除等。

兼容

IE8 以上就兼容,但是比較特別,需要在服務器上打開的才支持,直接雙擊打開文件的 file:// 是不兼容的。

到了 IE11 才支持 file:// 下打開的,其他瀏覽器的支持程度都很高,包括在手機上的兼容。

以上是“HTML5中web Storage的存儲方式有幾種”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

上饶市| 徐汇区| 佛学| 仁寿县| 苏尼特左旗| 交口县| 准格尔旗| 彰化县| 监利县| 阿巴嘎旗| 余庆县| 桦南县| 湘潭市| 洛扎县| 镇原县| 吴桥县| 灵宝市| 中山市| 丰顺县| 广州市| 金乡县| 丰原市| 文成县| 金平| 南涧| 黎平县| 苍梧县| 穆棱市| 青铜峡市| 丘北县| 吉首市| 密山市| 青海省| 积石山| 寻甸| 汝州市| 上高县| 红原县| 嵊泗县| 新竹市| 白朗县|