当前位置: 首页 > 工具软件 > web3.storage > 使用案例 >

Web Storage(localStorage/sessionStorage)

公冶智刚
2023-12-01

概述

Web Storage(localStorage/sessionStorage)是同步的,会阻塞主线程,只能包含字符串,在浏览器的隐私模式下不可读取,并且无法从web worker或service worker访问Web Storage。

Web Storage本质上是对字符串的读取,如果存储内容多的话会消耗内存空间,会导致页面变卡。

不会由浏览器自动发给服务器,需要手动取出来放到请求里面才会发给服务器,因此可以避免CSRF攻击。

sessionStorage与localStorage的唯一区别就是localStorage属于永久性存储,保存的数据没有过期时间,直到手动去删除;而sessionStorage在当会话结束的时候会被清空。

注:通过点击链接(或者用window.open)打开的新标签页属于同一个session,但复制网址新建选项卡会初始化一个新的session,即使网站是一样的。

大小限制

一般浏览器支持的是5M大小,不同浏览器大小会有所不同。

同源策略

不同于cookie在同一浏览器的相同域名可以共享,localStorage要求必须端口号也一样才能共享,sessionStorage甚至要求必须属于同一个会话。

API

存储对象属性

属性描述
length返回存储对象中包含多少条数据。

存储对象方法

方法描述
key(n)返回存储对象中第 n 个键的名称
getItem(keyname)返回指定键的值
setItem(keyname, value)添加键和值,如果对应的值存在,则更新该键对应的值。
removeItem(keyname)移除键
clear()清除存储对象中所有的键
 类似资料: