Web Storage:sessionStorage与localStorage(2)

http://www.itjxue.com  2015-08-07 21:27  来源:未知  点击次数: 

API测试

方法包括以下几个:

setItem(key,value)、removeItem(key)、getItem(key)、clear()、key(index);
属性包括length、remainingSpace(非标准)。不过存储数据时可以简单的使用localStorage.key=value的方式。

测试地址为:http://varnow.org/pages/html5/web_storage/local/localStorage.html
测试结果另人满意,标准中定义的接口在各个浏览器中都已实现,此外IE8下新增了一个非标准的remainingSpace属性,用于获取存储空间中剩余的空间。结果如表2:

表2 API测试

此外关于setItem(key,value)方法中的value类型,理论上可以是任意类型,不过实际上浏览器会调用value的toString方法来获取其字符串值并存储到本地,因此如果是自定义的类型则需要自己定义有意义的toString方法。

事件

标准的事件为onstorage,当存储空间中的数据发生变化时触发。此外,IE8中新增了一个onstoragecommit事件,当数据写入的时候触发。onstorage事件中的事件对象应该支持以下属性:

  • 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.

对于这一标准的实现,webkit内核的浏览器(Chrome、Safari)以及Opera是完全遵循标准的,IE8则只实现了url,Firefox下则均未实现。

测试地址为:http://varnow.org/pages/html5/web_storage/local/event.html

具体结果见表3。

表3 onStorage事件对象属性测试

此外,不同的浏览器事件注册的方式以及对象也不一致,具体如表4。

(责任编辑:IT教学网)

更多