资讯专栏INFORMATION COLUMN

js客户端存储之Web存储

ixlei / 996人阅读

摘要:存储客户端存储有几种方式,存储就是其中一种。浏览器兼容性存储有效期永久性。实际上,的数据是写入磁盘中,每次读取数据时,实际上是从硬盘驱动器上读取这些字节。所以不要在客户端存储敏感信息,比如密码或信用卡信息。

WEB存储

客户端存储有几种方式,WEB存储就是其中一种。最初作为H5的一部分被定义成API形式,后来被剥离出来作为独立的标准。所描述的API包含localStorage对象和sessionStorage对象,这两个对象实际都代表同一个Storage对象,是持久化关联数组。是名值对的映射表。
localStorage和sessionStorage区别在于存储的有效期和作用域的不同:数据可以存储多长时间以及谁拥有数据的访问权。

浏览器兼容性

存储有效期

localStorage
永久性。除非WEB应用刻意删除存储的数据,或者用户通过设置浏览器配置来删除,否则数据会一直保留在用户电脑上,永不过期。实际上,localStorage的数据是写入磁盘中,每次读取数据时,实际上是从硬盘驱动器上读取这些字节。

sessionStorage
窗口或标签页被永久关闭,则通过sessionStorage存储的数据也被删除。

作用域

都是限定在文档源级别。(非同源文档间无法共享)

localStorage

同源的文档间共享相同的localStorage数据。它们之间可以互相读取甚至覆盖对方数据。非同源的文档间互相都不能读取或覆盖对方的数据(即使运行的脚本是来自同一台第三方服务器也不行)。

受浏览器供应商限制。不能访问上次存储在不同浏览器的数据。

sessionStorage

限定在窗口中。如果同源的文档渲染在不同的浏览器标签页中,那么它们的数据也无法共享。【窗口指的是顶级窗口。若一个标签页中有两个