浏览器百科:网页存储篇-Local storage介绍(四)

1.引言

在前面的章节中,我们详细介绍了 Cookie 的概念和应用实例。随着网页应用的不断发展,数据存储需求越来越多样化,浏览器提供了多种存储机制来满足这些需求。其中,localStorage 作为一种重要的网页存储方式,可以在客户端保存大量数据,并且数据不会随浏览器关闭而消失,非常适合用于持久化存储。本篇文章将详细介绍 localStorage 的基本概念、使用方法以及实际开发中的应用场景,帮助开发者更好地理解和运用 localStorage,提升网页应用的用户体验和性能。

2.什么是localStorage

localStorage 是一种 HTML5 Web 存储技术,用于在客户端(浏览器)中以键值对的形式存储数据。与 sessionStorage 不同的是,localStorage 中存储的数据没有过期时间,即使浏览器关闭后数据仍然保留,直到被显式删除。

3.localStorage的特性

  • 持久性:数据在浏览器关闭后仍然存在,除非被显式删除。
  • 存储容量:通常比 Cookies 更大,一般为 5MB 左右。
  • 安全性:与 Cookies 相比,localStorage 更不容易被截获,但仍应注意不存储敏感信息。
  • 简单易用:使用简单的 API 进行数据的存储、读取和删除。

4.常用方法

🔔

无论存储的值之前是什么类型,如数字、json、数组等等,存储之后,都会是字符串类型

4.1 设置数据

这行代码用于将数据以键值对的形式存储在浏览器的 localStorage 中,localStorage提供持久化存储的 Web Storage API 对象,存储的数据不会在浏览器关闭时被清除,除非明确调用删除操作。

localStorage.setItem('key', 'value');

4.2 读取数据

该语法用于读取 localStorage中检索与指定键名关联的值。

const value = localStorage.getItem('key');

当取值不存在时,返回 undefined 或者 null。

💡

.getItem 方法总是返回字符串类型的数据。如果之前存储的数据是通过 JSON.stringify() 序列化的对象或数组,需要使用 JSON.parse() 将其转换回原始类型。

4.3 删除数据

该语法用于移除 localStorage 中删除指定键名及其关联的值,如果指定的键在 localStorage 中不存在,该方法不会报错,只是没有任何效果。

localStorage.removeItem('key');

4.4 清除所有数据

该语法用于移除所有的 localStorage 项,不需要任何参数,是即时生效的,调用 .clear 方法后,所有的键值对会立刻从 localStorage 中移除。如下:

localStorage.clear();

💡

调用 .clear() 方法将删除 localStorage 中所有存储的数据,不可恢复。因此,在调用此方法之前,需要确认是否真的需要清空所有数据。

4.5 获取存储的键

该语法是用于获取 localStorage 中存储的键的一种方法,索引从0开始,到 localStorage.length-1结束。超出这个范围将返回 null。如下:

const key = localStorage.key(index);

5.总结

通过对 localStorage 的基本概念、特性及常用方法的详细介绍,我们可以看到 localStorage 作为一种重要的 Web 存储技术,具有持久性高、存储容量大和使用方便等优点。了解和掌握 localStorage 的使用,对于提升网页应用的用户体验和性能具有重要意义。

下一篇文章将继续探讨网页存储的相关内容,介绍如何打开 localStorage 窗格,帮助开发者更直观地管理和调试存储数据。敬请期待《浏览器百科:网页存储篇-如何打开localStorage窗格(五)》。

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

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

相关文章

前端bug:v-show嵌套组件外层,页面扩大后,组件被遮挡

在外层套上v-show 页面扩大到125%后,页码栏被压缩到窗口底部,被遮挡了 把v-show放到每个内部组件上 解决了被遮挡的问题 虽然问题解决了,但是不清楚原理是什么,麻烦路过的大佬指点一下,感谢!&#x…

Mac+Pycharm配置PyQt6教程

安装包 pip install PyQt6 PyQt6-tools #查看Qt版本 pip show PyQt6 pip show pyqt6-tools 配置扩展工具 QTD(界面设计) Program:/Users/wan/PycharmProjects/NewDemo/venv/lib/python3.11/site-packages/qt6_applications/Qt/bin/Designer.app Working directo…

JavaScript Web API入门day5

目录 1.Window对象 1.1 BOM(浏览器对象模型) 1.2 定时器-延时函数 1.3 JS执行机制 1.3.1 问题 1.3.2 解决问题 1.4 location对象 1.5 navigator对象 1.6 histroy对象 2.本地存储 2.1 本地存储介绍 2.2 本地存储分类 2.2.1 本地存储分类 - localStorage 2.2.2 本地…

【生日视频制作】白色卡车行万里路车身改字2版AE模板修改文字软件生成器教程特效素材【AE模板】

生日视频制作教程白色卡车行万里路车身改字2版AE模板修改文字特效广软件告生成神器素材祝福玩法AE模板工程 怎么如何做的【生日视频制作】白色卡车行万里路车身改字2版AE模板修改文字软件生成器教程特效素材【AE模板】 生日视频制作步骤: 安装AE软件 下载AE模板 把…

Nature Communications 单细胞算法 scDist,教你怎么找到重要的细胞亚群与基因!

生信碱移 scDist: 寻找关键细胞亚群与基因的方法 单细胞RNA测序(scRNA-seq)使我们能够研究受药物治疗、感染以及癌症等疾病中关键的细胞亚群。为了找到可能影响疾病的细胞亚群乃至基因,我们常常去比较两个或多个组之间显著差异的细胞类型。…

docker安装prometheus、grafana监控SpringBoot

1. 概述 最新有一个需求, 需要安装一个监控软件,对SpringBoot程序进行监控, 包括机器上cpu, 内存,jvm以及一些日志的统计。 这里需要介绍两款软件: prometheus 和 grafana prometheus: 中文名称, 普罗米…

10分钟了解OPPO中间件容器化实践

背景 OPPO是一家全球化的科技公司,随着公司的快速发展,业务方向越来越多,对中间件的依赖也越来越紧密,中间件的集群的数量成倍数增长,在中间件的部署,使用,以及运维出现各种问题。 1.中间件与业…

遥控器显示分别对应的无人机状态详解!!

1. 电量显示 遥控器电量:遥控器上通常会显示自身的电池电量,以提醒用户及时充电。 无人机电量:部分高端遥控器还会显示无人机的电池电量,以进度条或百分比的形式表示,帮助用户了解无人机的续航能力。 2. 飞行模式与…

【C语言从不挂科到高绩点】09-作业练习-循环结构02

Hello!彦祖们,俺又回来了!!!,继续给大家分享 《C语言从不挂科到高绩点》课程,前面课程中给大家讲解了一些常规的知识点,那么本次课,我们一起来练习挑战一下!! 本套课程将会从0基础讲解C语言核心技术,适合人群: 大学中开设了C语言课程的同学想要专升本或者考研的同…

【C++题解】1002 - 编程求解1+2+3+...+n

问题一:1002 - 编程求解123…n 类型:简单循环 题目描述: 编程求解下列式子的值: S123⋯n。 输入: 输入一行,只有一个整数 n(1≤n≤1000) 。 输出: 输出只有一行(这意味着末尾有…

R语言 | 文件读取

一、文件读取 -scan()函数 scan(file “”, what double(), nmax -1, n -1, sep “ ”),file" " 的双引号里写文件地址,what写读入的数据类型,如果文件有好几种类型,可以啥也不写(what" "&…

如何解决Vue中给data中的对象属性添加一个新的属性时响应式不生效的问题?

vue2的响应式原理使用的是对象代理去实现的,对象代理中有一个get和set方法,当我们访问对象的时候就会触发get方法,当我们对对象中的值进行修改时会触发set方法。但是当我们给对象添加一个新的属性时对象代理是检测不到的,所以就会…

通用文字识别如何通过C#进行调用?(三)

一、什么是通用文字识别? 通用文字识别是一种技术,它能够将图像中的文字转换为可编辑的文本格式。 二、通用文字识别适用哪些场景? 例如:商业场景 1.广告数据分析:可以识别户外广告、宣传海报上的文字内容&#xf…

archery 1.9.1 二开-本地环境搭建

archery git 地址: 1、https://github.com/hhyo/Archery 2、pyton 版本使用3.9 3、创建虚环境 使用python3.9安装ldap依赖对应python版本 下载文件地址https://github.com/cgohlke/python-ldap-build/releasespip install python_ldap-3.4.4-cp39-cp39-win_amd64.whl 安装…

多个Node.js版本之间切换

使用nvm 查看已安装的版本 nvm list 切换版本 nvm use 版本号 安装指定版本 1.nvm install 2.nvm use [version] 原文参考

儿童耳勺电子版的好用吗?六大弊病坏处要规避

很多家长在后台私信问儿童耳勺电子版的好不好用,作为个护师,也测过市面上大大小小的儿童耳勺产品,要说出比较好用的是哪一款,还应当是电子版的可视耳勺,因为它有着其他耳勺没有的可视化功能,能将儿童耳道内…

MySQL record

更改密码: alter user rootlocalhost identified with mysql_native_password by ‘123456’; 注意: 在命令行方式下,每条MySQL的命令都是以分号结尾的,如果不加分号,MySQL会继续等待用户输入命令,直到MyS…

009.数据库管理-数据字典动态性能视图

我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈 入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈 虚 拟 环 境 搭 建 :👉&…

贝宁共和国驻华大使馆聘任向凌云教授为新兴产业顾问

2024年7月31日,贝宁共和国驻华大使西蒙皮埃尔阿多伟兰德(S.E.M.Simon Pierre ADOVELAND)代表贝宁共和国聘任国际著名新兴产业专家向凌云教授为贝宁共和国新兴产业顾问。 贝宁共和国(英文:The Republic of Benin, 法文&…

QT做一个USB HID设备识别软件

1.下载 HidApi库&#xff1a;GitHub - yigityuce/HidApi: Human Interface Device Api (HidApi) with C 2.pro文件添加 DEFINES - UNICODE LIBS -lsetupapi 3.h文件 #ifndef My_Usb_Hid_Device_H #define My_Usb_Hid_Device_H#include <QWidget> #include <QStr…