了解sessionStorage 和 localStorage:浏览器存储的差异与用途

在Web开发中,localStoragecookiessessionStorage 是三种常用的客户端数据存储方式,通俗的来理解就是存储在浏览器前端的非关系型数据库,它们各自有不同的特点和用途:

localStorage

  • 持久性:数据在页面会话结束时不会消失,除非被明确地删除。
  • 存储大小:通常限制为5MB左右。
  • 作用域:数据在同一个域的所有页面中共享。
  • 生命周期:直到数据被清除,否则一直存在。
  • 用途:适合存储不需要服务器端保存的持久化数据。

sessionStorage

  • 持久性:数据仅在当前会话页面中有效,一旦页面关闭,数据就会被清除。
  • 存储大小:通常限制为5MB左右。
  • 作用域:数据仅在当前页面有效,不同标签页或窗口之间不共享。
  • 生命周期:当前会话结束时。
  • 用途:适合存储只在会话期间需要的数据,如表单数据。

只能存储字符串类型,对于复杂对象可以使用JSON.stringifyJSON.parse处理。

如何查看浏览器本地存储:

以Edge浏览器为例:
打开某一个网页,F12打开开发者工具

在这里插入图片描述

属性描述
window.localStorage在浏览器中存储 key/value 对。没有过期时间。
window.sessionStorage在浏览器中存储 key/value 对。在关闭窗口或标签页之后将会删除这些数据。

存储对象属性

属性描述
length返回存储对象中包含多少条数据

存储对象方法

方法描述
key(n)返回存储对象中第 n 个键的名称
getItem(keyname)返回指定键的值
setItem(keyname, value)添加键和值,如果对应的值存在,则更新该键对应的值
removeItem(keyname)移除键
clear()清除存储对象中所有的键
localStorage 的用途:
  • 用户偏好设置:保存用户的个性化设置,如主题、语言选择等。
  • 缓存数据:存储一些不需要实时更新的数据,减少服务器请求,提高页面加载速度。
  • 离线数据存储:在用户离线时,存储用户操作数据,待网络恢复后再同步到服务器。
  • 持久化登录状态:存储用户的登录信息,实现持久化登录。
sessionStorage 的用途:
  • 表单数据:存储用户在当前会话中的表单输入,以便在页面刷新后恢复数据。
  • 临时数据:存储用户在当前会话中的临时数据,如购物车内容。
  • 会话状态:跟踪用户在单个会话中的操作,如页面导航历史。
  • 安全数据:存储一些敏感数据,如身份验证令牌,这些数据在会话结束后自动清除,增加安全性。

cookies

在这里插入图片描述

  • 持久性:可以设置过期时间,过了过期时间后数据会被删除。
  • 存储大小:通常限制为4KB。
  • 作用域:可以通过设置域和路径来限制cookie的作用范围。
  • 生命周期:由服务器设置,可以是会话级别或持久化。
  • 用途:常用于记录用户状态信息,如登录状态、用户偏好设置等。
  • 每次请求:每次HTTP请求都会带上cookies,因此过多使用cookies会增加请求的大小。
Cookie 的用途
  • 用户识别:Cookie 可以帮助网站记住用户的登录信息,使得用户在浏览不同页面时无需重新登录。
  • 购物车:在线商店可以使用 Cookie 来跟踪用户添加到购物车的商品。
  • 个性化:根据用户的偏好、行为或历史记录,网站可以使用 Cookie 来提供个性化的内容。
  • 跟踪用户行为:网站可以通过 Cookie 跟踪用户在网站上的活动,用于分析用户行为,改善用户体验。

Cookie 的生命周期

  • 会话 Cookie:仅在用户浏览会话期间存在,一旦用户关闭浏览器,会话 Cookie 就会被删除。
  • 持久 Cookie:具有设定的过期时间,在过期之前,即使关闭浏览器,Cookie 也会保存在用户的硬盘中。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

微信自动化加好友

在职场中,拓展人脉是成功的关键。手动添加好友不仅耗时,还容易出错。 试试这个批量自动添加的必备方法,告别手动添加客户的繁琐,私域运营也能如此高效! 再也不用一个个统计数据,浪费时间又累心。 具体操作如下&#…

ctfshow-web入门-反序列化(web260-web264)

目录 1、web260 2、web261 3、web262 4、web263 5、web264 1、web260 要求传入的内容序列化后包含指定内容即可,在 PHP 序列化中,如果键名或值包含 ctfshow_i_love_36D,那么整个序列化结果也会包含这个字符串。 payload: ?…

编写第一个 Appium 测试脚本:从安装到运行!

前言 最近接到一个测试项目,简单描述一下,需求就是:一端发送指令,另一端接受指令并处理指令。大概看了看有上百条指令,点点点岂不是废了,而且后期迭代,每次都需要点点点,想想就头大…

攻防世界36-fakebook-CTFWeb

攻防世界36-fakebook-CTFWeb 没发现什么&#xff0c;随便join发现blog有过滤&#xff0c;dirsearch扫描一下&#xff0c;发现robots.txt&#xff0c;和flag.php(不能直接看)&#xff0c;发现源码泄露&#xff0c;下载得源码&#xff1a; <?phpclass UserInfo{public $nam…

【Vue】简易博客项目跟做

项目框架搭建 1.使用vue create快速搭建vue项目 2.使用VC Code打开新生成的项目 端口号简单配置 修改vue.config.js文件&#xff0c;内容修改如下 所需库安装 npm install vue-resource --save --no-fund npm install vue-router3 --save --no-fund npm install axios --save …

delphi fmx android 自动更新(一)

12.2 android10测试通过 一,安卓权限设置 1,REQUEST_INSTALL_PACKAGES 权限 2,INTERNET 权限 3,READ_EXTERNAL_STORAGE 权限 4,WRITE_EXTERNAL_STORAGE 权限 5,READ_PHONE_STATE 二,安卓下载过程 一般是从http下载安装包 apk 所以,如果是http 则,manife…

VSCode本地C/C++环境配置

基本环境下载 1.我的系统是windows&#xff0c;自己先下载安装VSCode&#xff0c;网上视频实在太多&#xff0c;我建议跟着B站视频操作。 2.下载安装好后你需要明白&#xff1a;VSCode只是一个编辑工具&#xff0c;我们要写C/C代码得编译运行&#xff0c;所以我们要配置它在w…

[CKS] K8S NetworkPolicy Set Up

最近准备花一周的时间准备CKS考试&#xff0c;在准备考试中发现有一个题目关于不安全项目修复的题目。 ​ 专栏其他文章: [CKS] Create/Read/Mount a Secret in K8S-CSDN博客[CKS] Audit Log Policy-CSDN博客 -[CKS] 利用falco进行容器日志捕捉和安全监控-CSDN博客[CKS] K8S Ne…

【实验10】卷积神经网络(1)卷积算子

目录​​​​​​​ 1 自定义二维卷积算子 2 自定义带步长和零填充的二维卷积算子 3 实现图像边缘检测 4 自定义卷积层算子和汇聚层算子 4.1卷积层&#xff1a; 4.2 汇聚层&#xff1a; 5 学习torch.nn.Conv2d()、torch.nn.MaxPool2d()&#xff1b;torch.nn.avg_pool2d()&…

英伟达HOVER——用于人形机器人的多功能全身控制器:整合不同的控制模式且实现彼此之间的无缝切换

前言 前几天&#xff0c;一在长沙的朋友李总发我一个英伟达HOVER的视频(自从我今年年初以来持续不断的解读各大顶级实验室的最前沿paper、以及分享我司七月在具身领域的探索与落地后&#xff0c;影响力便越来越大了&#xff0c;不断加油 )&#xff0c;该视频说的有点玄乎&…

vue-h5:在h5中实现相机拍照加上身份证人相框和国徽框

1.基础功能 参考&#xff1a; https://blog.csdn.net/weixin_45148022/article/details/135696629 https://juejin.cn/post/7327353533618978842?searchId20241101133433B2BB37A081FD6A02DA60 https://www.freesion.com/article/67641324321/ https://github.com/AlexKrat…

如何使用IDEA创建Maven/SSM工程?

鉴于很多学校还在教授SSMJSP&#xff0c;很多同学不会使用IDEA创建Maven工程&#xff0c;这里进行说明 windows下安装jdk并配置环境 添加链接描述Windows下安装Maven并配置环境 首先你要本地安装jdk&#xff0c;Maven并配置基础环境变量&#xff0c;然后对IDEA进行jdk、Mave…

SD-WAN远程监控组网解决方案

在当今&#xff0c;企业对远程监控与管理的需求日益增加。无论是连锁门店的实时运营监控&#xff0c;还是跨区域的团队项目协作&#xff0c;企业都需要高效、稳定且安全的网络支持。传统网络连接方式&#xff0c;例如MPLS&#xff08;多协议标签交换&#xff09;&#xff0c;虽…

SQL练习(2)

题源&#xff1a;牛客官网 选择题 假设创建新用户nkw&#xff0c;现在想对于任何IP的连接&#xff0c;仅拥有user数据库里面的select和insert权限&#xff0c;则列表语句中能够实现这一要求的语句是&#xff08;&#xff09; A grant select ,insert on *.* to nkw% B grant…

Python http打印(http打印body)flask demo(http调试demo、http demo、http printer)

文章目录 代码解释 代码 # flask_http_printer.pyfrom flask import Flask, request, jsonify import jsonapp Flask(__name__)app.route(/printinfo, methods[POST]) def print_info():# 分隔符separator "-" * 60# 获取请求头headers request.headers# 获取 JS…

1163:阿克曼(Ackmann)函数

【题目描述】 阿克曼(Ackmann)函数A(m&#xff0c;n)中&#xff0c;m&#xff0c;n定义域是非负整数(m≤3,n≤10)&#xff0c;函数值定义为&#xff1a; 【输入】 输入m和n。 【输出】 函数值。 【输入样例】 2 3 【输出样例】 9代码实现 #include <stdio.h>/*1163&a…

Docker配置及简单应用

谈论/理解 Docker 的常用核心部分&#xff0c;以下皆在 Ubuntu 操作系统下进行 1 国内源安装 Docker-ce 1.1 配置 Linux 内核流量转发 因为docker和宿主机的端口映射&#xff0c;本质是内核的流量转发功能&#xff0c;所以要对其进行配置 1.1.1 未配置流量转发 如果没有配置流…

前端请求后端php接口跨域 cors问题

只需要后端在网站的入口文件 一般都是 index.php 加上 这几行代码就可以了 具体的参数可以根据需要去修改 header("Access-Control-Allow-Origin: *"); header(Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS); header(Access-Control-Allow-Heade…

Qt(程序打包)

Qt开发的程序最终都是要给用户使用的&#xff0c;用户的电脑上不可能装一个Qt的开发环境导入项目使用。因此项目项目开发完成后需要打包——制作成安装包&#xff0c;用户直接下载并安装即可使用。 1. 设置图标 设置图标的操作步骤如下&#xff1a; 1. 准备好图标文件&#xff…

LLM - 使用 LLaMA-Factory 微调大模型 Qwen2-VL SFT(LoRA) 图像数据集 教程 (2)

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/143725947 免责声明&#xff1a;本文来源于个人知识与公开资料&#xff0c;仅用于学术交流&#xff0c;欢迎讨论&#xff0c;不支持转载。 LLaMA-…