原生js--客户端存储的种类
客户端存储遵循同源策略,不同的站点页面之间不可以相互读取对方的数据,但同一站点的不同页面之间可以共享存储的数据
客户端存储的种类:
1、web存储
localStorage、sessionStorage
2、cookie
3、userData(IE)
4、web数据库(尚未标准化)
索引数据库API(indexed Database API)
5、文件系统API
用于将文件通过XHR上传到服务器
主要看了localStorage和sessionStorage
区别:
1、存储的有效期。localStorage为永久存储,除非用户手动删除;sessionStorage为会话存储,页面关闭之后就消失。
2、作用域:localStorage限定在文件源的级别,只要是同源的页面,都可以共享数据;sessionStorage只能再窗口级别共享数据(窗口为顶级窗口,顶级窗口和子窗口之间可以共享sessionStorage的数据)。
API:
setItem(“x”, 1)// 设置
getItem(“x”)// 获取
remoItem(“x”)// 删除
clear()// 删除全部
key(i) // 获取第i个数据的key
存储事件:
使用localStorage存储数据时,在当前页面存储,会在其他同源页面中触发存储事件(只有存储数据真正发生变化时才会被触发)
注册存储事件可以使用addEventListener或attachEvent的方法(绝大多数浏览器还可以使用onstorage的方法,但firefox不支持)
事件对象:(IE8不支持)
key // 被设置或移除的项的键,如果是调用的clear,则该值为null
newValue // 保存该项的新值,如果是删除,则该值为null
oldValue // 改变之前的值,如果是新项,则该值为null
storageArea // localStorage、sessionStorage等
url // 触发该存储事件的文档url