Loading

H5本地存储

本地存储

  • 功能:数据持久化

原因:

  • 浏览器访问服务器的无状态(不知道你是不是来过)、无连接(http请求<——>响应,类似发短信)
  • 用户体验
cookie(H4)
  • 在本地浏览器端有cookie空间存放数据,但主要由服务器操控,存放用户信息
  • 存储少量的文本信息,最大4K
  • 请求网页时携带在请求头里,自动发送到服务器(浪费带宽)
sessionStorage(H5 API)
  • 特点
    • 会话级别存储(只要没有关闭页面窗口,包括刷新和恢复页面,数据都存在)
    • 数据的存储结构呈现键值对
    • 一个域下面存储一份数据
  • 语法(4个方法)
    • 保存或修改数据:sessionStorage.setItem("key","value")
    • 获取数据:sessionStorage.getItem("key")
    • 删除数据:sessionStorage.removeItem("key")
    • 删除所有数据:sessionStorage.clear()
  • 注意
    • 键和值只能字符串方式存储,如果要存取复杂数据类型需使用JSON格式转换
      • 转字符串:JSON.stringify()
      • 解析字符串:JSON.parse()
    • 使用get获取,如果没有相应数据,返回值为null
    • 可在浏览器工具栏application中直接操作数据
localStorage(H5 API)
  • 特点
    • 永久存储
    • 其它同sessionStorage
  • 语法:同sessionStorage
三者的区别
  • 传递方式

    • cookie是浏览器与服务器之间自动来回传递
    • sessionStorage和localStorage不自动传
  • 数据大小

    • cookie不超过4K
    • sessionStorage和localStorage最大可达到5M
  • 作用时间

    • cookie是有过期时间的
    • sessionStorage是会话级别的
    • localStorage是永久存储
  • 作用范围

    • cookie和localStorage是同源窗口共享(同一文件域下)
    • sessionStorage是每个窗口独立的,不能共享
  • 注意:

    • H5的本地存储接口,除了存储时间和作用范围,其它一模一样
    • key和value只能存放字符串
补充了解
  • 快捷操作手段:

    • H5本地存储可直接通过API——localStorage或sessionStorage获取(直接用点key的方式)。
  • window.onStorage()事件

    • 本地存储是属于浏览器的,当本地存储数据发送改变时都会触发这个事件。
    • 在当前页面的控制台改变本地存储数据,只会在其它同源页面触发Storage事件,而不在改变数据的当前页面触发。(在application里修改相当于在后台修改,不是在当前页面修改,所以会触发Storage事件)
    • 在A页面修改后会触发B页面的Storage事件,可通过事件对象拿到新的数据e.newValue,实现两个页面要同步显示一些信息
posted @ 2020-03-22 21:37  小雪同学  阅读(192)  评论(0编辑  收藏  举报