浏览器缓存sessionStorage、localStorage、Cookie

一、sessionStorage

1、简介
sessionStorage用于在浏览器会话期间存储数据,数据仅在当前会话期间有效。
存储的数据在用户关闭浏览器标签页或窗口后会被清除。
2、方法
  • 使用sessionStorage.setItem(key, value)方法将数据存储在sessionStorage中。
  • 使用sessionStorage.getItem(key)方法根据键获取存储的值。
  • 使用sessionStorage.removeItem(key)方法根据键删除存储的值。
3、代码示例 
列表页搜索条件缓存, 使用sessionStorage实现简单的功能, 
存储数据+读取数据+清除数据
a、存取单个数据
sessionStorage.setItem("param", "我叫你一声你敢答应吗?");
let param = sessionStorage.getItem("param")
//我叫你一声你敢答应吗?
console.log(param ); 
b、存取对象 
sessionStorage也可存储Json对象:
存储时,通过JSON.stringify()将对象转换为文本格式;
读取时,通过JSON.parse()将文本转换回对象。
sessionStorage.setItem("queryParams", JSON.stringify(this.queryParams));
if (sessionStorage.getItem("queryParams")) {this.queryParams = JSON.parse(sessionStorage.getItem("queryParams"));
}
c、清除数据 
sessionStorage.removeItem("queryParams");

二、localStorage

1、简介
  •    localStorage用于在浏览器中永久存储数据,即使用户关闭浏览器标签页或窗口,数据仍然保留。
  • 存储的数据不会自动过期,除非显式地从代码中删除或用户清除浏览器缓存。
  • 存放数据大小一般为5MB;
  • 仅在浏览器中保存,不参与服务器通信;
2、方法
  1. 使用localStorage.setItem(key, value)方法将数据存储在localStorage中。
  2. 使用localStorage.getItem(key)方法根据键获取存储的值。
  3. 使用localStorage.removeItem(key)方法根据键删除存储的值。
3、代码示例 
// 设置localStorage中的数据
localStorage.setItem('key', 'value');
// 获取localStorage中的数据
const value = localStorage.getItem('key');
console.log(value);  // 输出:value
// 删除localStorage中的数据
localStorage.removeItem('key');
1、简介

2、方法

  • Cookie是一种在浏览器中存储数据的机制,用于跟踪和识别用户。
  • 可以设置Cookie的过期时间,使数据在指定时间后失效。
  • 即使用户关闭浏览器,存储在Cookie中的数据也可以保留,除非设置了过期时间。
  • 使用document.cookie属性进行设置和获取Cookie值。
  • 使用document.cookie = "key=value; expires=expiration_time; path=/;"语法设置Cookie。
  • 使用document.cookie获取所有Cookie值。
  • 使用document.cookie = "key=; expires=expiration_time; path=/;"语法删除Cookie。
3、代码示例 
// 设置cookie
document.cookie = "key=value; expires=expiration_time; path=/;";
// 获取所有cookie
const cookies = document.cookie;
console.log(cookies);
// 删除cookie
document.cookie = "key=; expires=expiration_time; path=/;";

四、三者区别 

这些存储机制各有优劣和适用场景。sessionStorage适用于在会话期间保持数据,
localStorage适用于需要永久存储数据的场景,
而Cookie用于跟踪用户和设置过期时间的需求。根据具体的应用需求,选择适合的存储机制可以更好地管理和存储数据。
1、sessionStorage与localStorage区别
  • sessionStorage在浏览器会话期间有效,而localStorage是持久的。
  • sessionStorage在用户关闭浏览器标签页或窗口时会被清除,而localStorage会一直保留。
  • sessionStorage和localStorage的使用方法相似,都是使用setItem、getItem和removeItem方法进行操作。 
2、sessionStorage、localStorage、cookie区别 
  1. 存储容量:sessionStorage和localStorage都提供了大约5MB的存储空间,而Cookie只能存储4KB的数据。
  2. 生命周期:sessionStorage的数据在单个会话期间有效,关闭浏览器后数据将被清除;localStorage的数据是永久性的,除非手动清除或代码删除;Cookie可以设置过期时间,可以在指定时间之前保持有效。
  3. 存储位置:sessionStorage、localStorage和Cookie数据都存储在客户端,不涉及服务器。
  4. 存储机制:sessionStorage、localStorage和Cookie都使用键值对的方式存储数据。
  5. 跨窗口通信:sessionStorage和localStorage不支持跨窗口通信,而Cookie支持。
  6. 跨域名访问:sessionStorage和localStorage不支持跨域名访问,而Cookie支持。
  7. 浏览器支持:sessionStorage和localStorage在现代浏览器中得到支持,而Cookie在所有浏览器中都可用。
  8. 与服务器交互:sessionStorage、localStorage不会自动发送数据到服务器,而Cookie在每次HTTP请求中都会自动发送到服务器。
特性sessionStoragelocalStoragecookie
存储容量5MB5MB4KB
生命周期单个会话期间永久可设置
存储位置客户端客户端客户端
存储机制键值对键值对键值对
跨窗口通信不支持不支持支持
跨域名访问不支持不支持支持
浏览器支持现代浏览器现代浏览器所有浏览器
与服务器交互不自动发送不自动发送自动发送

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/147187.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Ubuntu】Ubuntu20.04下安装视频播放器vlc和录屏软件ssr

【Ubuntu】Ubuntu20.04下安装视频播放器vlc和录屏软件ssr 文章目录 【Ubuntu】Ubuntu20.04下安装视频播放器vlc和录屏软件ssr1. 安装视频播放器vlc2. 安装录屏软件ssr 1. 安装视频播放器vlc sudo apt-get install vlcvlc是一款比较简洁的视频播放器,如下所示 2. 安…

Django之模板层

【1】模板之变量 在Django模板中要想使用变量关键是使用点语法。 获取值的语法是:{{ 变量名 }} Python中所有的数据类型包括函数,类等都可以调用 【2】模板之过滤器 过滤器语法 {{ obj | filter_name:param }} obj:变量名字&…

mysql 常见操作指令

use k_order – 查看版本 select version(); – 查看所有数据库 show databases; – 查看所有执行引擎 show engines; – 查看当前数据库 select database(); – 查看所有table show tables; – 查看默认存储引擎 SHOW VARIABLES LIKE ‘default_storage_engine’; – 系…

[acwing周赛复盘] 第 94 场周赛20230311

[acwing周赛复盘] 第 94 场周赛20231118 总结5295. 三元组1. 题目描述2. 思路分析3. 代码实现 5296. 边的定向1. 题目描述2. 思路分析3. 代码实现 六、参考链接 总结 好久没做acw了,挺难的。T1 模拟T2 前缀和以及优化。T3 贪心 5295. 三元组 链接: 5295. 三元组…

Mybatis学习笔记-映射文件,标签,插件

目录 概述 mybatis做了什么 原生JDBC存在什么问题 MyBatis组成部分 Mybatis工作原理 mybatis和hibernate区别 使用mybatis(springboot) mybatis核心-sql映射文件 基础标签说明 1.namespace,命名空间 2.select,insert&a…

【动态规划】求解编辑距离问题

目录 问题描述递推关系运行实例时空复杂度优化Hirschberg 算法 问题描述 编辑距离问题是求解将⼀个字符串转换为另⼀个字符串所需的插⼊、删除、替换的最小次数。 C O M M O M → s u b C O M M U M → s u b C O M M U N → i n s C O M M U N E \mathbb{COMMOM} \overset{sub…

八个开源免费单点登录(SSO)系统

使用SSO服务可以提高多系统使用的用户体验和安全性,用户不必记忆多个密码、不必多次登录浪费时间。下面推荐一些市场上最好的开源SSO系统,可作为商业SSO替代。 单点登录(SSO)是一个登录服务层,通过一次登录访问多个应…

TensorRt推理加速框架Python API服务器部署教程以及运行Helloworld程序

一、确认cuda工具包和n卡相关驱动是否安装 在终端中输入以下命令: nvcc -V如果出现以下提示,则已经成功安装 在终端中输入以下命令: nvidia-smi如果出现即为成功,我在这里就不去介绍怎么下载cuda和驱动怎么下载了,…

探索NLP中的核心架构:编码器与解码器的区别

❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️ 👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博…

微信小程序手写table表格

wxml <view class"table"><view class"tr bg-w"><view class"th">张三</view><view class"th" style"color: #409eff;">李四</view><view class"th ">王五</view&…

oracle19c单机应用补丁-缺少包导致失败

安装oracle19c单机没有显示缺少包&#xff0c;但应用补丁时导致失败&#xff0c; 1、缺少fuser命令 orcl:db> opatch apply Oracle Interim Patch Installer version 12.2.0.1.40 Copyright (c) 2023, Oracle Corporation. All rights reserved. Oracle Home : /u0…

分类预测 | Matlab实现PSO-BiLSTM-Attention粒子群算法优化双向长短期记忆神经网络融合注意力机制多特征分类预测

分类预测 | Matlab实现PSO-BiLSTM-Attention粒子群算法优化双向长短期记忆神经网络融合注意力机制多特征分类预测 目录 分类预测 | Matlab实现PSO-BiLSTM-Attention粒子群算法优化双向长短期记忆神经网络融合注意力机制多特征分类预测分类效果基本描述程序设计参考资料 分类效果…

使用Spring Boot实现大文件断点续传及文件校验

一、简介 随着互联网的快速发展&#xff0c;大文件的传输成为了互联网应用的重要组成部分。然而&#xff0c;由于网络不稳定等因素的影响&#xff0c;大文件的传输经常会出现中断的情况&#xff0c;这时需要重新传输&#xff0c;导致传输效率低下。 为了解决这个问题&#xff…

十三、Docker的安装

0.安装Docker Docker 分为 CE 和 EE 两大版本。CE 即社区版&#xff08;免费&#xff0c;支持周期 7 个月&#xff09;&#xff0c;EE 即企业版&#xff0c;强调安全&#xff0c;付费使用&#xff0c;支持周期 24 个月。 Docker CE 分为 stable test 和 nightly 三个更新频道…

Cannot convert string value ‘UNIFIED_TEST_PLATFORM‘ to an enum value of type

一、错误解决 Cannot convert string value UNIFIED_TEST_PLATFORM to an enum value of type com.android.builder.model.AndroidGradlePluginProjectFlags$BooleanFlag (valid case insensitive values: APPLICATION_R_CLASS_CONSTANT_IDS, TEST_R_CLASS_CONSTANT_IDS, TRAN…

联想笔记本电脑触摸板失灵了怎么办

这里写自定义目录标题 thinkbook笔记本电脑触摸板失灵 thinkbook笔记本电脑触摸板失灵 由于重装系统&#xff0c;导致笔记本的触控板失灵&#xff0c; 网上说的办法有 1、按键盘上的ctrlf6键&#xff0c;打开触控板功能&#xff1a;无效 2、设置——>设备——>触控板&am…

【powershell】入门和示例

▒ 目录 ▒ &#x1f6eb; 导读开发环境 1️⃣ 简介用途IDE解决此系统上禁止运行脚本 2️⃣ 语法3️⃣ 实战数据库备份执行循环拷贝文件夹 &#x1f6ec; 文章小结&#x1f4d6; 参考资料 &#x1f6eb; 导读 开发环境 版本号描述文章日期2023-11-17操作系统Win10 - 22H21904…

23111709[含文档+PPT+源码等]计算机毕业设计基于Spring Boot智能无人仓库管理-进销存储

文章目录 **软件开发环境及开发工具&#xff1a;****功能介绍&#xff1a;****论文截图&#xff1a;****数据库&#xff1a;****实现&#xff1a;****代码片段&#xff1a;** 编程技术交流、源码分享、模板分享、网课教程 &#x1f427;裙&#xff1a;776871563 软件开发环境及…

SQL server从安装到入门(一)

文章目录 彻底安装怎么安装&#xff1f;Polybase要求安装orcale jre 7更新 51或更高版本&#xff1f;安装完怎么配置&#xff1f;没有SSMS&#xff1f; 熟悉一下SMSS&#xff01; 根据本人实际安装和初步使用SQL server的过程中&#xff0c;经历的一些关键性的步骤和精品文章。…

Vue项目引入translate.js 国际化自动翻译组件

建议 translate.js 配合 i18 使用 本文只介绍 translate.js 的引入和使用方式 无论什么库 在翻译上 都不会做到 &#xff08; 100%翻译 && 100%准确 &#xff09; 所以不要吹毛求疵 官方文档&#xff1a;translate.js 前端翻译 该组件优点&#xff1a; 自动翻译 自动…