【前端入门】Cookie升级版?一起来看看Storage 接口有何“神效”

47 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第28天,点击查看活动详情

Storage 接口用于脚本在浏览器保存数据。两个对象部署了这个接口:window.sessionStoragewindow.localStorage

sessionStorage保存的数据用于浏览器的一次会话(session),当会话结束(通常是窗口关闭),数据被清空

localStorage保存的数据长期存在,下一次访问该网站的时候,网页可以直接读取以前保存的数据

就类似于Cookie升级版,能够使用更大的存储空间。另外,与 Cookie 一样,某个网页存入的数据,只有同域下的网页才能读取,跨域操作会有报错哦~

Storage 接口属性

Storage.length:返回保存的数据项个数

  • 增加:Storage.setItem()方法用于存入数据
  • 删除:Storage.clear()方法用于清除所有保存的数据
  • 查询:Storage.getItem()方法用于读取数据

Storage 事件

window.addEventListener('storage', onStorageChange);
//监听函数接受一个`event`实例对象作为参数

event实例对象继承了 StorageEvent 接口,有几个特有的属性:

  • StorageEvent.url:字符串,表示原始触发 storage 事件的那个网页的网址
  • StorageEvent.key:字符串,表示发生变动的键名
  • StorageEvent.newValue:字符串,表示新的键值
  • StorageEvent.oldValue:字符串,表示旧的键值
  • StorageEvent.storageArea:对象,返回键值对所在的整个对象

特别地需要注意:如果浏览器只打开一个窗口,可能观察不到这个事件。但如果同时打开多个窗口,当其中的一个窗口导致储存数据发生改变时,只在其他窗口能观察到监听函数执行

==>可以通过这种机制,实现多个窗口之间的通信

写在最后

以上习题&笔记从大佬们的论坛学习而来,特感谢大佬们的知识分享~ (学习技术知识,果然要看大佬们的技术博客,大家有好的推荐也欢迎指引我这个小白哈,感恩!)

附上学习链接,感谢这些大佬出题和解答:wangdoc.com/javascript/…