LocalStorage和SessionStorage存储

news/2024/10/22 11:26:45

认识Storage

◼ WebStorage主要提供了一种机制,可以让浏览器提供一种比cookie更直观的key、value存储方式:cookie:服务器返回自动返回一个cooki,浏览器将cookie存储到本地,浏览器再发送请求自动把cooki传递过去localStorage:本地存储,提供的是一种永久性的存储方法,在关闭掉网页重新打开时,存储的内容依然保留;sessionStorage:会话存储,提供的是本次会话的存储,在关闭掉会话时,存储的内容会被清除;

Storage的基本操作

 // 获取token
//第一次获取token 不一定是有值的
let token = localStorage.getItem("token")
//如果没有值就向服务器发送请求
if(!token){console.log("从服务器获取token")token = "webkingtokeninfo"localStorage.setItem("token",token)
}
//第一次获取username和password也不一定是保留的
let username = localStorage.getItem("username")
let password = localStorage.getItem("password")
// 如果没保留就让用户输入
if(!username||!password){console.log("让用户输入账号和密码")username = "hahahah"password = "hahahah"localStorage.setItem("username",username)
localStorage.setItem("password",password)
}

localStorage和sessionStorage的区别

◼ 我们会发现localStorage和sessionStorage看起来非常的相似。
◼ 那么它们有什么区别呢?验证一:关闭网页后重新打开,localStorage会保留,而sessionStorage会被删除;验证二:在页面内实现跳转,localStorage会保留,sessionStorage也会保留;验证三:在页面外实现跳转(打开新的网页),localStorage会保留,sessionStorage不会被保留;案例:// 验证一:关闭网页// //1.localStorage的存储--会保留// localStorage.setItem("name","localStorage")// //2.sessionStorage的存储--会消失// sessionStorage.setItem("name","sessionStorage")// 验证二:打开新的网页再网页内// const btnEl = document.querySelector(".btn")// btnEl.onclick = function(){//   window.open("./static/about.html","_self")// }// //1.localStorage的存储--会保留// localStorage.setItem("info","localStorage-1111")// //2.sessionStorage的存储--会保留// sessionStorage.setItem("info","sessionStorage1111")// 验证三:打开新的页面再网页外const btnEl = document.querySelector(".btn")btnEl.onclick = function(){window.open("./static/about.html","_blank")}//1.localStorage的存储--会保留localStorage.setItem("info","localStorage-页面外")//2.sessionStorage的存储--会保留sessionStorage.setItem("info","sessionStorage-页面外")

Storage常见的方法和属性

  ◼ Storage有如下的属性和方法:◼ 属性:Storage.length:只读属性✓ 返回一个整数,表示存储在Storage对象中的数据项数量;◼ 方法:Storage.key(index):该方法接受一个数值n作为参数,返回存储中的第n个key名称;Storage.getItem():该方法接受一个key作为参数,并且返回key对应的value;Storage.setItem():该方法接受一个key和value,并且将会把key和value添加到存储中。✓ 如果key存储,则更新其对应的值;Storage.removeItem():该方法接受一个key作为参数,并把该key从存储中删除;Storage.clear():该方法的作用是清空存储中的所有key;演示:console.log(localStorage.length)//常见的方法// 如果有两个字符串再两个地方出现,可以存储到一个常量里,避免出错const access_token = "token"// setItem/getItem 获取和设置localStorage.setItem(access_token,"webkingtoken")console.log(localStorage.getItem(access_token))//其他方法console.log(localStorage.key(1))console.log(localStorage.key(0))console.log(localStorage.removeItem("info"))localStorage.clear()

Storage-Cache工具的封装

## 封装文件// 可以解决Storage不能传入对象的问题//缓存class Cache{constructor(isLocal=true){this.storage = isLocal?localStorage:sessionStorage}setCache(key,value){if(!value){throw new Error("value没有值")}this.storage.setItem(key,JSON.stringify(value))}getCache(key){const result = this.storage.getItem(key)if(result){return JSON.parse(result)}}removeCache(key){this.storage.removeItem(key)}clear(){this.storage.clear()}}const localCache = new Cache()const sessionCache = new Cache(false)localCache.setCache("number",111)//storage 本身不能存储对象类型的const userinfo = {name:"hdc",nickname:"webKing",level : 100,imgURL:"http:www.baidu.com"}console.log(localCache.setCache("userinfo",userinfo))console.log(localCache.getCache("userinfo"))

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

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

相关文章

本地签发ssl证书(https)

说明 ssl证书主要用于https网络访问的安全认证 工具 下载本地自签证书程序https://github.com/FiloSottile/mkcert/releases 命令行mkcert-v1.4.4-windows-amd64 -?可以查看使用方法 生成步骤 1、mkcert-v1.4.4-windows-amd64 -install 安装本地根证书 2、生成自签证书:mkcer…

架构和运行机制

本篇主要介绍Streamlit的核心架构和运行机制, 目的是希望朋友们能先从整体上宏观的了解Streamlit,利用它提供的机制开发性能更高效的应用。 1. 架构 Streamlit比较特殊,它对使用者来说是BS架构应用,而随开发者来说其实更像一个CS架构的应用。 为什么说Streamlit更像CS架构呢…

ByteHouse直播预告:揭秘基于OLAP降本增效的四大硬招

在数字化转型浪潮中,企业数据量正以惊人的速度增长,随之而来的数据存储、处理与分析挑战也日益严峻。在这一背景下,如何既保障查询性能,又尽可能降低资源成本,已成为企业亟需解决的核心问题。为此,ByteHouse将于10月23日19:00举办线上直播活动,围绕“降本增效”话题,深…

【触想智能】工业一体机在数控设备上应用的要求分析

工业一体机是一种集成了计算机、运动控制、人机界面和各种输入输出接口的设备。它广泛应用于数控设备,如数控机床、机器人、自动化生产线等。触想工业一体机TPC-W400系列在数控设备上应用工业一体机可以提高生产效率、降低成本和改善生产质量,但是你知道工业一体机在数控设备…

PbootCMS 放在二级目录无法进行数据库备份的解决办法

1. 打开 DatabaseController.php 文件使用 FTP 客户端:使用 FTP 客户端(如 FileZilla)连接到你的服务器。 导航到网站根目录的 apps/admin/controller/system 文件夹。下载 DatabaseController.php 文件:下载 DatabaseController.php 文件到本地,以便备份和编辑。2. 编辑 …

PbootCMS放在二级目录无法进行数据库备份怎么办

问题表现当 PbootCMS 安装在二级目录时,无法进行数据库备份。原因数据库备份路径配置不正确,导致备份功能无法正常工作。解决方法修改 DatabaseController.php 文件中的备份路径配置,去掉路径前的斜杠 /。扫码添加技术【解决问题】专注中小企业网站建设、网站安全12年。熟悉…

Express的使用笔记 6 项目接口在postman中的统一管理

笔记5已经将一个项目的基本结构搭建完成了,还进行了一定的封装,使用postman调用接口的时候,为了更好的管理项目,我们可以创建一个collection,然后在里面创建不同主题的文件夹,盛放对应的请求,并在环境中配置基本路径。

PbootCMS如何开启手机访问

问题表现PbootCMS 默认支持自适应模板的手机端访问,但如果你的模板不是自适应的,需要开启独立手机版访问。原因默认情况下,PbootCMS 使用自适应模板来适配不同设备。如果模板不是自适应的,需要单独设置手机端模板。解决方法在全局配置中开启独立手机版,并在模板文件夹下新…