API測試
方法包括以下幾個:
setItem(key,value)、removeItem(key)、getItem(key)、clear()、key(index); 屬性包括length、remainingSpace(非標(biāo)準(zhǔn))。不過存儲數(shù)據(jù)時可以簡單的使用localStorage.key=value的方式。
測試地址為:http://varnow.org/pages/html5/web_storage/local/localStorage.html 測試結(jié)果另人滿意,標(biāo)準(zhǔn)中定義的接口在各個瀏覽器中都已實現(xiàn),此外IE8下新增了一個非標(biāo)準(zhǔn)的remainingSpace屬性,用于獲取存儲空間中剩余的空間。結(jié)果如表2:
表2 API測試
此外關(guān)于setItem(key,value)方法中的value類型,理論上可以是任意類型,不過實際上瀏覽器會調(diào)用value的toString方法來獲取其字符串值并存儲到本地,因此如果是自定義的類型則需要自己定義有意義的toString方法。
事件
標(biāo)準(zhǔn)的事件為onstorage,當(dāng)存儲空間中的數(shù)據(jù)發(fā)生變化時觸發(fā)。此外,IE8中新增了一個onstoragecommit事件,當(dāng)數(shù)據(jù)寫入的時候觸發(fā)。onstorage事件中的事件對象應(yīng)該支持以下屬性:
-
The key attribute represents the key being changed.
-
The oldValue attribute represents the old value of the key being changed.
-
The newValue attribute represents the new value of the key being changed.
-
The url attribute represents the address of the document whose key changed.
-
The storageArea attribute represents the Storage object that was affected.
對于這一標(biāo)準(zhǔn)的實現(xiàn),webkit內(nèi)核的瀏覽器(Chrome、Safari)以及Opera是完全遵循標(biāo)準(zhǔn)的,IE8則只實現(xiàn)了url,F(xiàn)irefox下則均未實現(xiàn)。
測試地址為:http://varnow.org/pages/html5/web_storage/local/event.html
具體結(jié)果見表3。
表3 onStorage事件對象屬性測試
此外,不同的瀏覽器事件注冊的方式以及對象也不一致,具體如表4。
出處:百度泛用戶體驗
責(zé)任編輯:bluehearts
上一頁 Web Storage全解析 [1] 下一頁 Web Storage全解析 [3]
◎進入論壇網(wǎng)頁制作、WEB標(biāo)準(zhǔn)化版塊參加討論,我還想發(fā)表評論。
|