Javascript笔记:WebStorage

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Javascript笔记:WebStorage相关的知识,希望对你有一定的参考价值。

Storage类型

  • 存储键值对
    • 值只能是string类型,其他类型被自动转换为string
  • 方法
    • getItem(name)查
    • removeItem(name)删
    • setItem(name)增/改
    • clear()清除( ! Firefox )
    • key(index)根据索引值取键名
  • 属性
    • length 键值对个数

      1. //结合length和key()实现迭代键值对
      2. for(var i = 0, len = storage.length; i < len; i++){
      3. key = storage.key(i);
      4. value = storage.getItem(key);
      5. ...
      6. }
    • 数据也是Storage实例的属性,可以通过.[name]读写值

      1. //for-in迭代键值对
      2. for(var key in storage){
      3. value = storage.getItem(key);
      4. ...
      5. }

windows.sessionStorage对象

  • Storage类型的实例
    • 可以使用方法或者属性读写数据
  • 特定于会话
    • 页面刷新后可用
    • 浏览器崩溃恢复后可用(Firefox & WebKit ! IE)
    • 通过javascript删除||关闭浏览器窗口(标签页)||用户清理缓存后数据失效

windows.globalStorage对象

  • glabalStrorage不是Storage类型的实例,globalStorage[“wrox.com”]是Storage类型的实例
  • 特定于域名,端口,协议
    • 通过javascript删除||用户清理缓存后数据失效
    • 自定义访问域
      1. globalStorage["wrox.com"].name="jack";//wrox.com及其子域可访问
      2. globalStorage["net"].name="jack";//任何.net结尾的域名可访问
      3. globalStorage[""].name="jack";//任何域名可以访问
      4. //通过location指定当前域
      5. globalstorage[locationhost].name="jack"

windows.localStorage对象

  1. //兼容只支持globalStorage的浏览器
  2. function getLcLocalStorage(){
  3. if(typeof localStorage == "object"){
  4. return localStorage;
  5. }
  6. else if(typeof globalStorage == "object"){
  7. return globalStorage;
  8. }
  9. else{
  10. throw new Error("Local storage not available")
  11. }
  12. }
  13. var storage = getLocalStorage
  • Storage类型实例
  • 特定于域,协议,端口
    • 子域无效
    • 通过javascript删除||用户清理缓存后数据失效

storage 事件

  • 触发
    • 通过属性或方法设置键值对
    • 通过removeItem()方法或delete操作符删除键值对
    • 调用clear()
    • 支持sessionStorage,globalStorage,localStorage,不作区分
  • event属性
    • domain 对应域名
    • key 设置或删除的键名
    • newValue 若设置值则为新值,若删除则为null
    • oldValue 原始值




以上是关于Javascript笔记:WebStorage的主要内容,如果未能解决你的问题,请参考以下文章

IndexedDB基本使用——笔记

localStorage单页面及不同页面监听变动

Vue TodoList案例组件通信方式webStorage插槽(3种)

Vue TodoList案例组件通信方式webStorage插槽(3种)

Vue TodoList案例组件通信方式webStorage插槽(3种)

浏览器本地存储(Html5新增:WebStorage)