网站制作学习网经验与学习→正文:web localStorage和sessionStorage的关系和区别
字体:

web localStorage和sessionStorage的关系和区别

经验与学习 2024/12/3 9:22:00  点击:不统计

http://%77%77%77%2E%66%6F%72%61%73%70%2E%63%6E

 localStorage、sessionStorage 和 cookie 都是浏览器提供的用于存储客户端数据的机制,它们在用途、生命周期、存储大小以及数据传输方式上各有不同。
 
1. localStorage
特点
存储大小:通常为 5MB(因浏览器而异)。
生命周期:数据长期保存,除非手动删除,否则即使关闭浏览器也不会清除。
作用域:同源(protocol + domain + port)下共享,支持跨页面监听key变动事件,有用于登录等跨页面变动监控。
数据类型:仅支持字符串(可以通过 JSON.stringify 和 JSON.parse 存储和解析复杂数据)。
 
使用场景
适合存储需要长期保留的数据,比如用户偏好设置、主题选择等。
 
操作案例:
   // 设置
localStorage.setItem('key', 'value');

// 获取
let value = localStorage.getItem('key');

// 删除
localStorage.removeItem('key');

// 清空所有数据
localStorage.clear();
   
 
 
2. sessionStorage
特点
存储大小:通常为 5MB(因浏览器而异)。
生命周期:仅在当前会话中有效,关闭浏览器或标签页时会清除。
作用域:同源(protocol + domain + port)下的单个标签页独享,无法跨标签页访问。
数据类型:仅支持字符串。
 
使用场景
适合存储临时数据,比如表单输入、页面会话状态等。
 
操作案例:
   // 设置
sessionStorage.setItem('key', 'value');

// 获取
let value = sessionStorage.getItem('key');

// 删除
sessionStorage.removeItem('key');

// 清空所有数据
sessionStorage.clear();
   
 
3. cookie
特点
存储大小:最大约 4KB。
生命周期:可由开发者通过 expires 或 max-age 设置。如果未设置,默认为会话级别,浏览器关闭时清除。
作用域:同源共享,支持跨子域传递(通过设置 domain 属性)。
数据传输:每次请求时都会自动发送给服务器,增加请求大小,适合存储需要服务器读取的数据。
数据类型:仅支持字符串。
 
使用场景
适合存储需要在客户端和服务端之间传递的小量数据,比如用户登录状态、会话信息等。
 
操作案例:
   // 设置
document.cookie = "key=value; expires=Fri, 31 Dec 2024 23:59:59 GMT; path=/";

// 获取
console.log(document.cookie);

// 删除
document.cookie = "key=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/";
   
 
 
总结
localStorage:适合长期存储的、无需频繁变动的客户端数据,支持跨页面监听key变动事件,有用于登录等跨页面变动监控。
sessionStorage:适合临时性、会话级别的数据存储。
cookie:适合需要与服务器交互的小数据存储,但由于其体积限制和传输机制,较少用于现代前端存储。

网站制作学习网Foasp.cn

·上一篇:网站架构 >>    ·下一篇:现高并发web服务 >>
推荐文章
最新文章