localstorage 和 sessionStorage 区别

`localStorage``sessionStorage`都是在浏览器端用于存储数据的机制。

一、数据存储的生命周期

1. `localStorage`

数据存储是持久化的,除非被手动清除或者用户清除浏览器缓存,否则数据会一直存在。即使关闭浏览器窗口、重新启动计算机或者在不同的会话中访问同一网站,存储在`localStorage`中的数据仍然可以被访问。

例如:用户在一个购物网站上将一些商品添加到购物车并使用`localStorage`存储购物车信息。即使用户关闭浏览器后第二天再次打开该网站,购物车中的商品信息仍然存在。

2. `sessionStorage`

数据仅在当前会话期间有效。当用户关闭浏览器窗口或标签页时,存储在`sessionStorage`中的数据将被清除。

例如:用户在一个在线文档编辑网站上进行一些临时的编辑操作,网站使用`sessionStorage`存储当前编辑状态。如果用户关闭了该标签页,再次打开网站时,之前的编辑状态将丢失。

二、存储容量和限制

1. 存储容量

两者的存储容量通常都比较有限,但具体的容量限制因浏览器而异。一般来说,存储容量在几兆字节到几十兆字节之间。

例如:一些浏览器可能限制`localStorage`和`sessionStorage`的存储容量为 5MB 左右。如果存储的数据超过了这个限制,可能会导致存储失败或其他问题。

2. 存储限制

`localStorage``sessionStorage`的存储受到同源策略的限制。这意味着只有来自同一域名、协议和端口的网页才能访问彼此的存储数据。

例如:一个网站`example.com`的页面不能访问另一个网站`another-example.com`的`localStorage`或`sessionStorage`数据。

三、使用场景

1. `localStorage`

适用于需要在不同会话之间保存数据的场景,例如用户偏好设置、登录状态、购物车信息等。

比如:一个新闻网站可以使用`localStorage`存储用户的阅读偏好设置,以便在用户下次访问时自动应用这些设置。

2. `sessionStorage`

常用于在当前会话中临时存储数据的场景,例如表单数据的暂存、页面之间的数据传递等。

例如:一个多步骤的表单填写过程中,可以使用`sessionStorage`在不同的步骤之间暂存用户输入的数据,以便用户在返回上一步时可以恢复之前的输入。

四、访问方式和 API

1. 访问方式

两者都可以通过 JavaScript 的`window.localStorage`和`window.sessionStorage`对象进行访问。

可以使用`setItem()`方法存储数据,`getItem()`方法获取数据,`removeItem()`方法删除特定的数据项,`clear()`方法清除所有存储的数据。

2. API 一致性

`localStorage`和`sessionStorage`的 API 基本相同,使用起来相对简单和一致。这使得在不同的场景中切换使用它们相对容易。

例如:以下代码展示了如何使用`localStorage`和`sessionStorage`存储和获取数据:

// 使用 localStorage

localStorage.setItem("key", "value");

const valueFromLocalStorage = localStorage.getItem("key");



// 使用 sessionStorage

sessionStorage.setItem("key", "value");

const valueFromSessionStorage = sessionStorage.getItem("key");

猜你喜欢

转载自blog.csdn.net/weixin_64684095/article/details/143423339