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);
}
复制代码

 

posted @   君君仔的随笔  阅读(138)  评论(0编辑  收藏  举报
编辑推荐:
· 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语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示