sessionStorage、localStorage、cookie你真的会用么

news/2024/5/18 11:49:14 标签: javascript, localStorage, sessionStorage, cookie, 前端

文章目录

  • 前言
    • 会话存储:
    • 本地存储:
  • 一、sessionStorage
  • 二、localStorage
    • 介绍
    • 使用演示
      • 存储数据
      • 读取数据
      • 修改数据
      • 删除数据
      • 清除所有数据
      • 从Chrome查看localStorage的存储情况
  • 三、Cookie
    • 介绍
    • 使用演示
      • 设置Cookie
      • 读取Cookie
      • 删除Cookie
      • 使用场景
      • 从Chrome查看Cookie的存储情况
  • 四、三者的区别
  • 总结


前言

浏览器的存储通常分为两类:会话存储和本地存储。
在这里插入图片描述

会话存储:

会话存储指的是在用户打开浏览器窗口并访问网站时,浏览器会自动创建一个会话对象,会话对象会储存在浏览器内存中,当用户关闭浏览器或退出当前会话时,会话数据将被清除。 会话存储可以通过 JavaScript 中的 session Storage API 来实现,它可以方便地在不同页面和标签之间共享数据。

本地存储:

本地存储是指浏览器保存数据到本地硬盘或其他持久化存储设备中。浏览器可以使用 localStorage API 存储的数据永久存储在用户的计算机上,即使关闭浏览器窗口、退出会话或重启电脑,数据仍然存在。

本文今天将针对于sessionStoragelocalStoragecookie三种常见的浏览器存储做透彻的讲解。看之前先来个三联吧。


sessionStorage_20">一、sessionStorage

介绍

sessionStorage,可以将数据存储于浏览器中的sessionStorage对象中,这些数据只在同一个浏览器窗口(或标签页)被创建并且加载了相同的页面时才被保留,不同的页面之间无法共享sessionStorage中的数据。

sessionStorage(或标签页)的生命周期内,关闭窗口后sessionStorage中存储的数据会被清除。
存储的数据仅限于字符串类型,即使存储的是数字、布尔值等其他类型的数据,也会被转换为字符串类型。
只能在客户端使用,无法通过服务端设置和获取。

使用演示

常见使用示例如下:

sessionStorage_30">存储数据到sessionStorage

javascript">sessionStorage.setItem('name', '张三');

sessionStorage_35">从sessionStorage中获取数据

javascript">var name = sessionStorage.getItem('name');
console.log(name); // 张三

sessionStorage_41">删除sessionStorage中的某个键值对

javascript">sessionStorage.removeItem('name');

sessionStorage_46">清空sessionStorage中的所有数据

javascript">sessionStorage.clear();

sessionStorage_50">从Chrome查看sessionStorage的存储情况

在这里插入图片描述

localStorage_53">二、localStorage

介绍

localStorageHTML5提供的一种浏览器存储机制,可以在客户端本地保存键值对数据,并支持对数据进行读取、修改和删除等操作。
相比于传统的cookielocalStorage可以存储更多的数据量(通常为5-10MB),而且不会随HTTP请求被发送到服务器端,因此更为安全和高效。
localStorage的共享级别是域名级别的,可以跨页面使用。

使用演示

常见的localStorage使用包括了以下几个方面:

存储数据

可以使用localStorage.setItem()方法将键值对数据存储到localStorage中,例如:

javascript">localStorage.setItem('username','John');
localStorage.setItem('city','Beijing');

读取数据

可以使用localStorage.getItem()方法读取localStorage中的数据,例如:

javascript">var username = localStorage.getItem('username');
console.log(username); //输出:John

修改数据

可以使用localStorage.setItem()方法将相同键名的数据进行覆盖,从而实现修改数据的效果,例如:

javascript">localStorage.setItem('username','Alice');
var username = localStorage.getItem('username');
console.log(username); //输出:Alice

删除数据

可以使用localStorage.removeItem()方法将localStorage中指定键名的数据删除,例如:

javascript">localStorage.removeItem('city');
var city = localStorage.getItem('city');
console.log(city); //输出:null

清除所有数据

可以使用localStorage.clear()方法将localStorage中的所有数据清空,例如:

javascript">localStorage.clear();

需要注意的是,由于localStorage只能存储字符串类型的数据,因此如果需要存储其他类型的数据(如数组或对象),需要先将其转换为字符串类型,例如:

javascript">var arr = [1,2,3];
localStorage.setItem('myArray',JSON.stringify(arr));
var myArray = JSON.parse(localStorage.getItem('myArray'));
console.log(myArray); //输出:[1,2,3]

localStorage_110">从Chrome查看localStorage的存储情况

在这里插入图片描述

三、Cookie

介绍

Cookie是一个小型的文本文件,存储在用户计算机上,用于识别用户和记录用户的偏好。当用户访问一个网站时,该网站会将Cookie存储在用户计算机上,并在随后的访问中读取Cookie,以便提供个性化的服务和体验。
由于Cookie每次请求都会从客户端带到服务器,所以Cookie数量不宜过多,占用空间不宜过大。一遍将一些重要数据,或者大部分页面都需要用到的数据放到Cookie上面。

使用演示

设置Cookie

javascript">document.cookie = "name=value; expires=date; path=path; domain=domain; secure"

读取Cookie

javascript">var cookieValue = document.cookie

删除Cookie

javascript">document.cookie = "name=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/"

使用场景

常见的Cookie使用包括:

  • 登录状态维护:在用户登录时,服务器会生成一个唯一的Cookie,保存在用户计算机上。每次用户访问该网站时,浏览器会自动将该Cookie发送给服务器,以维护用户的登录状态。

  • 记住用户名和密码:在用户登录成功后,可以选择“记住用户名和密码”,此时浏览器会生成一个包含用户名和密码的Cookie,保存在用户计算机上。下次用户访问该网站时,浏览器会自动填写用户名和密码。

  • 购物车功能:在用户将商品加入购物车时,服务器会生成一个Cookie,保存在用户计算机上。当用户继续购物或结账时,浏览器会将购物车信息发送给服务器。

从Chrome查看Cookie的存储情况

在这里插入图片描述

四、三者的区别

特性sessionStoragelocalStoragecookie
存储大小5-10MB5-10MB4KB
生命周期会话级别永久取决于过期时间
与服务器通信不参与不参与每次请求都会发送
数据存储格式字符串字符串字符串或二进制数据
在同源窗口间共享可以可以只有在设置了相同的路径、域名和协议下才能共享
访问方式window.sessionStoragewindow.localStoragedocument.cookie

注:同源指的是协议、域名和端口号完全相同。

总结

在这里插入图片描述

以上就是本篇所讲解的内容,sessionStoragelocalStoragecookie你真的会用么,后面会分享更多有深度的前端内容,记得先点个关注不迷路。


http://www.niftyadmin.cn/n/414334.html

相关文章

软体机器人,刚柔软机器人仿真建模,干货满满,直接上图!

一、 背景: 软体机器人技术是近年来机器人领域最为热门的研究领域之一。软体机器人具有天然的柔 性、自适应性、低成本和被动安全性,在人机交互、医疗服务等领域具有广泛的应用前景。同时, 软体机器人的研究涉及软材料、机构设计、仿生学、微…

Flutter 笔记 | Best Practice Tips for Flutter

1. 保持 build 方法纯净 build方法必须是纯粹的/没有任何不需要的东西。这是因为有一些外部因素可以触发一个新的小部件构建,下面是一些例子: Route pop/push 屏幕大小的调整,通常是因为键盘显示或屏幕方向的改变 父部件重新创建了它的子部件 Widget…

传统ERP软件如何SaaS化?

01 ERP和SaaS ERP概念 企业资源计划 (ERP) 系统是许多企业的主干,助力管理整个企业内的会计、采购流程、项目等。对于许多 IT 部门而言,ERP 系统通常意味着大型、昂贵且耗时的部署,并可能需要进行大量硬件或基础设施投资。然而,云…

C++设计模式单件模式

以下是一个用 C 实现的单例模式示例代码&#xff1a; #include <iostream> class Singleton { private: static Singleton* instance; Singleton() {} public: static Singleton* getInstance() { if (instance nullptr) { // 懒汉式单例模式&#xff0c;只有在第一次…

易基因:全基因组DNA甲基化和小RNA分析揭示甘蓝型油菜种子的基因组不对称性 | 植物发育

大家好&#xff0c;这里是专注表观组学十余年&#xff0c;领跑多组学科研服务的易基因。 多倍体是被子植物基因组进化中的一种持续现象&#xff0c;有助于现存开花植物的多样性。甘蓝型油菜&#xff08;Brassica napus&#xff09;是世界上最重要的被子植物油料作物品种之一&a…

Qt6 C++基础入门3 对话框与MainWindow

目录 对话框MainWindow菜单工具栏 对话框 目前的对话框主要有以下几大类 文件对话框( QFile Dialog)消息对话框( QMessageBox)输入对话框( QInputDialog)颜色对话框( QColorDialog)字体对话框( QFontDialog) 这是七大对话框及其基本用法的实例参考&#xff0c;所有代码都写在…

PYTHON元素定位方式总结

一&#xff0c;常用的8种定位方式 id定位 driver.find_element_by_id("id 值")   driver.find_element(by "id", value "ID值" ) name定位 单个元素&#xff1a;     driver.find_element_by_name("name值")     drive…

国产触控笔哪个牌子好?第三方电容笔推荐

对于那些把iPad当做学习工具的人来说&#xff0c;这已经成为了他们生活中不可缺少的一部分。但没有人买得起苹果原装电容笔&#xff0c;因为苹果电容笔的售价太贵了。因此&#xff0c;最好还是用一支普通的电容笔。我是个一个苹果粉&#xff0c;同时也是个数字发烧友&#xff0…