作用
Web storage API使页面可以将一些数据保存在客户端
。
种类
- sessionStorage
- localStorage
sessionStorage和localStorage的区别
sessionStorage
当前页面刷新、恢复(通过浏览器的‘恢复上次关闭的页面’,不是手动重新打开)时,被保存的数据仍然保留;
关闭浏览器窗口时,数据清空。
localStorage
刷新、恢复、关闭浏览器窗口,数据都会保留。
方法
sessionStorage,localStorage都包含以下4种方法
setItem
1 | //存一个值 |
getItem
1 | //读取一个值 |
removeItem
1 | //删除一个值 |
clear
1 | //清空 |
ps:storage中的键值对,key和value都必须是string类型,如果不是,会被自动转为string
storage事件
Storage 对象发生变化时(即创建/更新/删除数据项时,重复设置相同的键值不会触发该事件,Storage.clear() 方法至多触发一次该事件),StorageEvent 事件会触发。在同一个页面内发生的改变不会起作用——在相同域名下的其他页面(如一个新标签或 iframe)发生的改变才会起作用。在其他域名下的页面不能访问相同的 Storage 对象。
例如:
http://111.11.11:8080/a.html
1 | localStorage.setItem('name','leo') |
1 | window.addEventListener('storage',function(e){ |
同时打开 同源的 a,b两个页面,a页面内设置localStorage,b页面内会出发storage事件。
但是我通过测试,发现sessionStorage并不会触发这个事件