前端新能优化篇之localStorage和sessionStorage的区别及其使用方式

本文主要是介绍前端新能优化篇之localStorage和sessionStorage的区别及其使用方式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

localStorage 和sessionStorage的相同点

  • localStorage和sessionStorage这两个都是用于存储客户端数据的。 也被称为前端缓存或webStorage。
  • localStorage和sessionStorage的存储大小都是5M。
  • localStorage和sessionStorage都只能存储字符串类型数据。

localStorage 和sessionStorage的区别

1、是否可以跨页面通讯

sessionStorage

使用sessionStorage缓存的数据不可进行跨页面通讯,因为sessionStorage的生命周期是基于浏览器页面的。

sessionStorage↓

image.png

注意: 不过同一个页面下嵌套的iframe属于同源。同页面下的iframe之间可以进行通讯。

localStorage

使用localStorage缓存的数据可以进行跨页面通讯。一个窗口存储的数据在另一个窗口可以拿到。

localStorage👇

image.png

2、是否会随着浏览器关闭而清除

sessionStorgae存储的数据在页面被关闭以后会自动被清除不会保留。

localStorage存储的数据除非我们手动清除,否则一直存在。

localStorage和sessionStorage的应用场景

最常用的就是登录信息了。localStorage的话比较适合长期有效的自动登录。

sessionStorage比较适用于短期有效的自动登录(比如token过期重新请求)。

注意:在适用sessionStorage和localStorage的时候,存储的敏感数据(比如账号密码)最好都加密一下。

在浏览器的“应用程序”里是可以看到的↓

image.png

sessionStorgae和localStorage的使用方式

sessionStorage

存储
sessionStorage.setItem("key","val");
读取
sessionStorage.getItem("key","val");
删除指定键
sessionStorage.removeItem("key","val");
删除全部
sessionStorage.clear();

localStorage

存储
localStorage.setItem("key","val");
读取
localStorage.getItem("key","val");
删除指定键
localStorage.removeItem("key","val");
删除全部
localStorage.clear();

结论

  • localStorage可以跨页面通讯。sessionStorage不可以跨页面通讯
  • localStorage不会随着页面关闭而被清除,他只能手动清除。sessionStorage会随着页面的关闭而清除。
  • localStorage和sessionStorage的存储大小都是5M。

这篇关于前端新能优化篇之localStorage和sessionStorage的区别及其使用方式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/826162

相关文章

React 记忆缓存的三种方法实现

《React记忆缓存的三种方法实现》本文主要介绍了React记忆缓存的三种方法实现,包含React.memo、useMemo、useCallback,用于避免不必要的组件重渲染和计算,感兴趣的可以... 目录1. React.memo2. useMemo3. useCallback使用场景与注意事项在 Re

python中getsizeof和asizeof的区别小结

《python中getsizeof和asizeof的区别小结》本文详细的介绍了getsizeof和asizeof的区别,这两个函数都用于获取对象的内存占用大小,它们来自不同的库,下面就来详细的介绍一下... 目录sys.getsizeof (python 内置)pympler.asizeof.asizeof

Nginx屏蔽服务器名称与版本信息方式(源码级修改)

《Nginx屏蔽服务器名称与版本信息方式(源码级修改)》本文详解如何通过源码修改Nginx1.25.4,移除Server响应头中的服务类型和版本信息,以增强安全性,需重新配置、编译、安装,升级时需重复... 目录一、背景与目的二、适用版本三、操作步骤修改源码文件四、后续操作提示五、注意事项六、总结一、背景与

Docker多阶段镜像构建与缓存利用性能优化实践指南

《Docker多阶段镜像构建与缓存利用性能优化实践指南》这篇文章将从原理层面深入解析Docker多阶段构建与缓存机制,结合实际项目示例,说明如何有效利用构建缓存,组织镜像层次,最大化提升构建速度并减少... 目录一、技术背景与应用场景二、核心原理深入分析三、关键 dockerfile 解读3.1 Docke

Vue3 如何通过json配置生成查询表单

《Vue3如何通过json配置生成查询表单》本文给大家介绍Vue3如何通过json配置生成查询表单,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录功能实现背景项目代码案例功能实现背景通过vue3实现后台管理项目一定含有表格功能,通常离不开表单

在Android中使用WebView在线查看PDF文件的方法示例

《在Android中使用WebView在线查看PDF文件的方法示例》在Android应用开发中,有时我们需要在客户端展示PDF文件,以便用户可以阅读或交互,:本文主要介绍在Android中使用We... 目录简介:1. WebView组件介绍2. 在androidManifest.XML中添加Interne

Java Stream流与使用操作指南

《JavaStream流与使用操作指南》Stream不是数据结构,而是一种高级的数据处理工具,允许你以声明式的方式处理数据集合,类似于SQL语句操作数据库,本文给大家介绍JavaStream流与使用... 目录一、什么是stream流二、创建stream流1.单列集合创建stream流2.双列集合创建str

SpringBoot中@Value注入静态变量方式

《SpringBoot中@Value注入静态变量方式》SpringBoot中静态变量无法直接用@Value注入,需通过setter方法,@Value(${})从属性文件获取值,@Value(#{})用... 目录项目场景解决方案注解说明1、@Value("${}")使用示例2、@Value("#{}"php

SpringBoot分段处理List集合多线程批量插入数据方式

《SpringBoot分段处理List集合多线程批量插入数据方式》文章介绍如何处理大数据量List批量插入数据库的优化方案:通过拆分List并分配独立线程处理,结合Spring线程池与异步方法提升效率... 目录项目场景解决方案1.实体类2.Mapper3.spring容器注入线程池bejsan对象4.创建

Python使用FastAPI实现大文件分片上传与断点续传功能

《Python使用FastAPI实现大文件分片上传与断点续传功能》大文件直传常遇到超时、网络抖动失败、失败后只能重传的问题,分片上传+断点续传可以把大文件拆成若干小块逐个上传,并在中断后从已完成分片继... 目录一、接口设计二、服务端实现(FastAPI)2.1 运行环境2.2 目录结构建议2.3 serv