localStorage和sessionStorage

目前浏览器似乎只支持存储字符串类型的数据,所以我们想要存储其他类型的数据,不得不自己手动进行编码和解码。

实现了“Web存储”标准的浏览器在window对象上定义了两个属性:localStorage和sessionStorage,这两个属性都代表同一个Storage对象,因此他们具有相同的API。Storage对象的属性值为字符串。

localStorage和sessionStorage的主要区别在于存储的有效期和作用域不同。localStorage存储的数据是永久性的,其作用域限定在文档源级别(只要URL的协议、端口、主机名三者中有一个不同,就属于不同的文档源)。除此之外,localStorage也受浏览器供应商限制,如果使用chrome访问一个网站,下次用firefox再次访问是获取不到上次存储的数据的。

而sessionStorage的有效期仅存在于浏览器的标签页。也就是说如果关闭标签页后,通过sessionStorage存储的数据就都被删除了。sessionStorage的作用域不仅被限制在文档源,还被限定在窗口中,也就是同一标签页中。注意,这里说的窗口是指顶级窗口,若果同一标签页中包含多个iframe元素,这两者之间也是可以共享sessionStorage的。

sessionStorage

// 保存数据到sessionStorage
sessionStorage.setItem('key', 'value');

// 从sessionStorage获取数据
var data = sessionStorage.getItem('key');

// 从sessionStorage删除保存的数据
sessionStorage.removeItem('key');

// 从sessionStorage删除所有保存的数据
sessionStorage.clear();

localStorage

名称作用
clear清空localStorage上存储的数据
getItem读取数据
hasOwnProperty检查localStorage上是否保存了变量x,需要传入x
key读取第i个数据的名字或称为键值(从0开始计数)
lengthlocalStorage存储变量的个数
propertyIsEnumerable用来检测属性是否属于某个对象的
removeItem删除某个具体变量
setItem存储数据
toLocaleString将(数组)转为本地字符串
valueOf获取所有存储的数据

sessionStorage 属性允许你访问一个 session Storage 对象。它与 localStorage 相似,不同之处在于 localStorage 里面存储的数据没有过期时间设置,而存储在 sessionStorage 里面的数据在页面会话结束时会被清除。页面会话在浏览器打开期间一直保持,并且重新加载或恢复页面仍会保持原来的页面会话。在新标签或窗口打开一个页面会初始化一个新的会话,这点和 session cookies 的运行方式不同。

只读的localStorage 允许你访问一个Document 的远端(origin)对象 Storage;数据存储为跨浏览器会话。 localStorage 类似于sessionStorage,区别在于,数据存储在 localStorage 是无期限的,而数据存储在sessionStorage 会被清除, 当页面会话结束时——也就是说当页面被关闭。

应注意无论数据存储在 localStorage 还是 sessionStorage ,它们都特定于页面的协议。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值