LocalStroage 与 SessionStroage(抄AI)

162 阅读2分钟

在Web开发中,LocalStorage 和 SessionStorage 是用于存储数据的两种Web Storage API,允许在用户的浏览器中存储和检索数据。它们各自有不同的特性和使用场景。下面是它们的详细介绍:

1. 基本概念

  • LocalStorage

    • 是一种可以永久存储数据的方式,直到明确删除数据或清除浏览器的缓存。
    • 存储容量通常为 5MB 到 10MB,具体取决于浏览器。
  • SessionStorage

    • 用于存储在用户会话期间的数据,这些数据在会话结束(例如,关闭标签页或浏览器)时将被删除。
    • 和 LocalStorage一样,存储容量通常也为 5MB 到 10MB

2. 主要区别

表格

特性LocalStorageSessionStorage
数据存储时间永久保存,直到被删除仅在当前会话中有效,关闭标签页或窗口后被删除
访问范围跨标签页和窗口可访问仅在同一标签页或窗口可访问
适用场景需要持久性存储的用户偏好、设置等临时存储、单次会话中的数据

3. 数据操作

3.1. 存储数据

  • LocalStorage
javascript
// 存储数据  
localStorage.setItem('key', 'value');  

// 存储对象,需先转换为JSON字符串  
const user = { name: 'John', age: 30 };  
localStorage.setItem('user', JSON.stringify(user));  
  • SessionStorage
javascript
// 存储数据  
sessionStorage.setItem('key', 'value');  

// 存储对象,需先转换为JSON字符串  
const sessionData = { sessionID: 'abc123' };  
sessionStorage.setItem('sessionData', JSON.stringify(sessionData));  

3.2. 读取数据

  • LocalStorage
javascript
// 读取数据  
const value = localStorage.getItem('key');  
const user = JSON.parse(localStorage.getItem('user'));  
  • SessionStorage
javascript
// 读取数据  
const value = sessionStorage.getItem('key');  
const sessionData = JSON.parse(sessionStorage.getItem('sessionData'));  

3.3. 删除数据

  • LocalStorage
javascript
// 删除特定数据  
localStorage.removeItem('key');  

// 清空所有数据  
localStorage.clear();  
  • SessionStorage
javascript
// 删除特定数据  
sessionStorage.removeItem('key');  

// 清空所有数据  
sessionStorage.clear();  

4. 使用注意事项

  • 由于 LocalStorage 和 SessionStorage 数据是以字符串格式储存,因此在存储非字符串数据时需要进行序列化(如 JSON.stringify)和反序列化(如 JSON.parse)。
  • 存储的数据对于同源策略是隔离的,即同源的多个网页可以访问彼此的 LocalStorage 或 SessionStorage 数据,而不同源的网页则无法访问。

5. 适用场景

  • LocalStorage

    • 用户偏好设置(如主题、语言等)。
    • 长期保存表单数据草稿。
  • SessionStorage

    • 暂时保存用户在表单中的输入数据。
    • 在多个页面间临时传递用户信息(例如在一系列的表单步骤中)。