站長資訊網
        最全最豐富的資訊網站

        HTML5-Web Storage APIs的簡述

        1.概述
        Web Storage是一種在客戶端存儲數據的方法。比起Cookie,Web Storage更加安全,能夠存儲更多對象,而不僅僅是字符串;Web Storage能夠存儲更大的數據,而不是像只能夠存儲幾KB數據的Cookie;Web Storage還可以減少數據在客戶端與服務器間的轉換,減少帶寬。
        Web Storage的核心是是window對象的兩個子對象sessionStorage和localStorage。數據以鍵值對的形式通過這兩個對象存儲,這兩個對象都實現了storage接口,擁有名稱相同的屬性和方法,用法也相同。不同之處是二者的存儲時間和共享范圍。
        sessionStorage數據存儲時間依賴于存儲它的瀏覽器窗口或選項卡存在的時間,共享范圍也是只在產生它的瀏覽器窗口或選項卡內。
        localStorage數據存儲時間要超過瀏覽器的打開時間,除非通過手動或者代碼刪除,其共享范圍是同源(origin)網站的頁面間。
        許多瀏覽器不支持sessionStorage訪問本地文件系統,因此要通過Web服務器使用。
        Web Storage的規范允許存儲任何類型數據,但在各瀏覽器實現上多數值允許存儲字符串文本數據,但可以使用Web Storage結合JSON技術存儲非文本數據。
        更高級的數據存儲方法是Web SQL Database,用于基于索引的數據庫存儲,并具有SQL查詢語言SQLite。Web SQL Database目前僅被Safari,Chrome和Opera支持。最終的規范很可能不采用這種方式。另外一種方法是IndexedDB,僅FireFox 4以上版本支持。

        2.瀏覽器支持檢測

         function checkStorageSupport() {     //sessionStorage       if   (window.sessionStorage) {       alert('This browser supports sessionStorage');     }   else   {       alert('This browser does NOT support sessionStorage');     }     //localStorage     if (window.localStorage) {       alert('This browser supports localStorage');     } else {       alert('This browser does NOT support localStorage');     }   }

        3.Storage接口

          interface Storage {        //同源鍵值對的數目       readonly attribute unsigned long length;        //通過索引獲取鍵,索引從0開始       getter DOM  String     key  (in unsigned long index);        //通過鍵獲取值,鍵若不存在,值將返回  null       getter any getItem(in DOMString key);        //存儲鍵值對,若已存在同名鍵,則值將被覆蓋。若用戶關閉了瀏覽器存儲或是已超     //過允許存儲的最大值,都將產生QUOTA_EXCEEDED_ERR錯誤。         set  ter creator void setItem(in DOMString key, in any data);        //通過鍵刪除值,不存在則什么也不做         delete  r void removeItem(in DOMString key);        //刪除storage中所有鍵值對,若為空則什么也不做       void   clear  ();      };

        4.讀取和存儲數據

          //---------------方式一--------------     //存儲數據     window.sessionStorage.setItem(‘myFirstKey’, ‘myFirstValue’);      //讀取數據     alert(window.sessionStorage.getItem(‘myFirstKey’));      //---------------方式二--------------     //存儲數據     window.sessionStorage.myFirstKey = ‘myFirstValue’;     //讀取數據     alert(window.sessionStorage.myFirstKey);      //---------------方式三--------------     var varKey = sessionStorage.key(index);     window.sessionStorage[varKey] =   new  Value;

        5.存儲事件
        Web Storage與其它頁面、瀏覽器窗口或選項卡、Web Worker間的通信可以通過存儲事件來進行。同源的對象都可以監聽storage事件。添加storage事件監聽方法如下:

          window.addEventListener("storage", displayStorageEvent, true);

        6.StorageEvent接口
        storage事件對象實現了StorageEvent接口,該接口的聲明如下:

         interface StorageEvent : Event {         readonly attribute DOMString key;         readonly attribute any oldValue;         readonly attribute any newValue;         readonly attribute DOMString url;         //該方法提供了一個對發生storage事件對象的  引用  ,這個對象可以是        //sessionStorage或localStorage        readonly attribute Storage storageArea;     };

        6.處理最大配額
        多數瀏覽器所允許的Web Storage不超過5MB,為了防止存儲數據時產生超出配額的限制,可以使用捕獲QUOTA_EXCEEDED_ERR異常的方法來處理,例如:

        try     {        sessionStorage["name"] = "Tabatha";     }     catch (  exception  )     {        if (exception == QUOTA_EXCEEDED_ERR)        {            // we should tell the user their quota has been exceeded.         }     }

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 久久精品aⅴ无码中文字字幕不卡| 久久精品亚洲男人的天堂| 精品免费视在线观看| 久久亚洲AV永久无码精品| 国产精品亚洲精品| 高清免费久久午夜精品| 拍国产真实乱人偷精品| 亚洲精品高清久久| 国产精品igao视频网网址| 国产日韩一区在线精品欧美玲| 午夜精品久久久内射近拍高清 | 91精品国产9l久久久久| 午夜精品久久影院蜜桃| 国内精品免费久久影院| 999国产精品色在线播放| 国产亚洲综合成人91精品| 色妞ww精品视频7777| 亚洲AV永久无码精品一区二区国产| 国产精品成人啪精品视频免费| 精品久久久久久中文字幕| 国产成人久久精品一区二区三区| 午夜精品久久久久久久| 在线观看91精品国产网站| 日韩精品一区二区三区中文字幕 | 国产精品久久久久影院色| 国产精品看高国产精品不卡| 亚洲无线观看国产精品| 国产精品久久久久jk制服| 亚洲国产精品一区二区第四页| 精品视频一区二区三区四区五区| 午夜精品美女写真福利| 国产成人精品视频播放| 国产亚洲色婷婷久久99精品| 人妻少妇精品视频二区| 6080亚洲精品午夜福利| 国产成人精品电影在线观看| 久久精品www人人爽人人| 久久精品国产亚洲AV高清热| 人妻AV一区二区三区精品| 日韩精品无码久久久久久| 亚洲国产精品久久久天堂|