localStorage、sessionStorage和cookie的区别和使用
一、localStorage
用于长久保存整个网站的数据,保存的数据没有过期时间,直到手动去删除;
一般最大可存储5M
数据,并且支持跨域隔离,localStorage
满了的情况下仍继续存储并不会覆盖其他的值,而是直接报错(QuotaExceededError
),并且当前存储的值也会被清空。
保存数据语法:
localStorage.setItem("key", "value");
读取数据语法:
var lastname = localStorage.getItem("key");
删除数据语法:
localStorage.removeItem("key");
删除所有数据:
localStorage.clear();
另外一种保存、读取和删除的方法:
// 保存 localStorage.name = 'lj'; // 读取 localStorage.name; // lj // 删除 delete localStorage.name; // 清除全部 localStorage.clear(); // 遍历 for (let i = 0; i < localStorage.length; i++) { const key = localStorage.key(i); // 获取本地存储的Key console.log(localStorage[key]); // 获取本地存储的value }
二、sessionStorage
该数据对象临时保存同一窗口(或标签页)的数据,在关闭窗口或标签页之后将会删除这些数据。
假设你在A
页面存储了sessionStorage
,新开选项卡将A
页面的链接粘贴进去打开页面,sessionStorage
也是不存在的。
所以sessionStorage
存在的条件是页面间的跳转,A
页面存储了sessionStorage
,他要通过超链接
或者location.href
或者window.open
来打开另一个同域页面才能访问sessionStorage
。
保存、读取和删除的方法同localStorage的用法
三、cookie
cookie在设置的时候如果不设置过期时间,就表示是个会话cookie,
Cookie 是一些数据, 存储于你电脑上的文本文件中。
当 web 服务器向浏览器发送 web 页面时,在连接关闭后,服务端不会记录用户的信息。
Cookie 的作用就是用于解决 "如何记录客户端的用户信息"。
/*描述: 新建一条Cookie,交由浏览器管理! 参数说明: name - 键值对的键,唯一标记一个值 value - 键值对的值,cookie存储的内容 expdays - cookie过期时间(有效时间) */ //添加cookie function setCookie(name, value, expdays) { var expdate = new Date(); //设置Cookie过期日期 expdate.setDate(expdate.getDate() + expdays); //添加Cookie document.cookie = name + "=" + escape(value) + ";expires=" + expdate.toUTCString(); } // 获取cookie function getCookie(name) { //获取name在Cookie中起止位置 var start = document.cookie.indexOf(name + "="); if (start != -1) { start = start + name.length + 1; //获取value的终止位置 var end = document.cookie.indexOf(";", start); if (end == -1) end = document.cookie.length; //截获cookie的value值,并返回 return unescape(document.cookie.substring(start, end)); } return ""; } //删除cookie function delCookie(name) { setCookie(name, "", -1); }
标签:
javaScript
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构