【温故而知新】HTML5存储localStorage/sessionStorage

文章目录

  • 一、概念
  • 二、存储localStorage
  • 三、存储sessionStorage
  • 四、区别及优缺点
    • 1. 区别:
    • 2. 优缺点:

一、概念

HTML5是HTML的最新版本,它引入了许多新的元素和功能,以适应现代网页开发的需求。以下是HTML5的一些主要特点:

  1. 新增语义元素:HTML5引入了许多新的语义元素,如<header>、<footer>、<article>、<section>等,这些元素有助于提高网页的结构化和可访问性。
  2. 媒体支持:HTML5引入了<audio><video>元素,使得开发者可以在网页上直接嵌入音频和视频内容,而不需要依赖第三方插件。
  3. Canvas绘图:HTML5引入了<canvas>元素,使得开发者可以使用JavaScript在网页上绘制图形和动画。
  4. 语义化标签:HTML5的语义化标签使得网页的结构更加清晰和易于理解。例如,使用<nav>元素表示导航链接,使用<article>元素表示独立的内容等。
  5. 交互性:HTML5提供了更多的API和事件处理程序,使得开发者可以创建更加交互式的网页和应用。例如,拖放功能、文件上传和下载、地理定位等。
  6. 离线和存储:HTML5提供了离线存储和会话存储功能,使得开发者可以在用户的设备上存储数据,以便在离线时使用。
  7. 更好的表单控制:HTML5改进了表单元素和输入类型,使得表单的验证和输入更加方便和智能。

HTML5是一个非常强大的工具,它为开发者提供了更多的功能和灵活性,使得他们可以创建出更加丰富、交互性更强、功能更全面的网页和应用。

二、存储localStorage

HTML5存储是一种用于在客户端存储数据的技术。它提供了几种存储选项,包括Web存储、Web SQL数据库和IndexedDB。这些存储选项可以在用户的浏览器中存储数据,以便在重新加载页面或关闭浏览器后仍然可用。

下面是一个使用HTML5 Web存储的简单案例代码:

<!DOCTYPE html>
<html>
<head><title>HTML5 Web存储</title><script>// 存储数据function storeData() {var name = document.getElementById("name").value;localStorage.setItem("name", name);}// 检索数据function retrieveData() {var name = localStorage.getItem("name");document.getElementById("display").innerHTML = "您的名字是:" + name;}</script>
</head>
<body><h1>HTML5 Web存储</h1><input type="text" id="name" placeholder="请输入您的名字"><button onclick="storeData()">存储</button><br><button onclick="retrieveData()">检索</button><p id="display"></p>
</body>
</html>

在上面的代码中,我们使用了localStorage对象来存储和检索数据。在storeData函数中,我们获取输入框中的值,并使用localStorage.setItem方法将其存储在名为"name"的键下。在retrieveData函数中,我们使用localStorage.getItem方法检索存储的值,并将其显示在页面上。

这只是一个简单的示例,用于演示HTML5 Web存储的基本用法。您可以根据自己的需求扩展和修改代码。

方法
保存数据:localStorage.setItem(key,value);
读取数据:localStorage.getItem(key);
删除单个数据:localStorage.removeItem(key);
删除所有数据:localStorage.clear();
得到某个索引的key:localStorage.key(index);

三、存储sessionStorage

sessionStorage是HTML5中提供的一种在浏览器会话期间存储数据的方式。与localStorage不同,sessionStorage存储的数据仅在当前会话期间有效,即当用户关闭浏览器窗口或标签页时,sessionStorage中的数据会被清除。

在使用sessionStorage存储数据时,您可以使用以下方法:

  1. setItem(key, value): 将键值对存储到sessionStorage中。其中key是要存储的数据的键,value是要存储的数据的值。
sessionStorage.setItem("name", "John");
  1. getItem(key): 检索sessionStorage中存储的值。其中key是要检索的数据的键。
var name = sessionStorage.getItem("name");
  1. removeItem(key): 从sessionStorage中删除指定键的数据。
sessionStorage.removeItem("name");
  1. clear(): 清除sessionStorage中的所有数据。
sessionStorage.clear();

以下是一个使用sessionStorage的简单示例代码:

<!DOCTYPE html>
<html>
<head><title>HTML5 sessionStorage存储</title><script>// 存储数据function storeData() {var name = document.getElementById("name").value;sessionStorage.setItem("name", name);}// 检索数据function retrieveData() {var name = sessionStorage.getItem("name");document.getElementById("display").innerHTML = "您的名字是:" + name;}</script>
</head>
<body><h1>HTML5 sessionStorage存储</h1><input type="text" id="name" placeholder="请输入您的名字"><button onclick="storeData()">存储</button><br><button onclick="retrieveData()">检索</button><p id="display"></p>
</body>
</html>

在上述代码中,我们使用sessionStorage对象实现了存储和检索数据的功能。在storeData函数中,我们获取输入框中的值,并使用sessionStorage.setItem方法将其存储在名为"name"的键下。在retrieveData函数中,我们使用sessionStorage.getItem方法检索存储的值,并将其显示在页面上。

注意:与localStorage不同,sessionStorage的存储是基于每个窗口或标签页的。即使同一个网站在多个标签页中打开,每个标签页会有自己独立的sessionStorage,它们之间的数据是隔离的。

四、区别及优缺点

localStorage和sessionStorage是HTML5中提供的两种在浏览器端存储数据的方式。它们的区别和优缺点如下:

1. 区别:

  • 数据的生存周期:localStorage中存储的数据在浏览器关闭后仍然有效,而sessionStorage中存储的数据仅在当前会话期间有效,即当用户关闭浏览器窗口或标签页时,sessionStorage中的数据会被清除。
  • 数据的共享性:localStorage中存储的数据是在同一域名下的多个窗口和标签页之间共享的,而sessionStorage中存储的数据仅在同一个窗口或标签页中共享。
  • 存储容量:localStorage和sessionStorage的存储容量通常为5MB,但实际容量可能因浏览器和操作系统的限制而有所不同。

2. 优缺点:

localStorage的优点:

  • 永久存储:localStorage中存储的数据在浏览器关闭后仍然有效,可以用于持久化存储用户的偏好设置、登录状态等信息。
  • 共享性:localStorage中存储的数据可以在同一域名下的多个窗口和标签页之间共享,方便在不同页面之间传递数据。

localStorage的缺点:

  • 容量限制:localStorage通常有一定的存储容量限制,如果存储大量数据可能会受到容量限制。
  • 安全性:由于localStorage中的数据是永久存储的,可能会存在安全风险,例如存储用户的敏感信息,如果不加密存储可能会被滥用。

sessionStorage的优点:

  • 临时存储:sessionStorage中存储的数据仅在当前会话期间有效,可以用于暂时存储会话相关的数据,避免数据泄露和安全风险。
  • 隔离性:sessionStorage中存储的数据仅在同一个窗口或标签页中共享,可以避免不同页面之间相互干扰。

sessionStorage的缺点:

  • 临时性:sessionStorage中存储的数据在浏览器关闭后会被清除,不能实现持久化存储。

根据具体业务需求,可以选择使用localStorage或sessionStorage来存储数据。如果需要持久化存储数据或在多个窗口和标签页之间共享数据,可以使用localStorage;如果只需要在当前会话期间临时存储数据或避免不同页面之间相互干扰,可以使用sessionStorage。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Alinx ZYNQ 7020 LED调试--in RAM

设置拨码开关为JTAG方式 烧写LED bit stream a. 点击“Program device”烧录程序到FPGA中&#xff08;重新上电程序就丢失了&#xff09; b. /01_led/led.runs/impl_1/led.bit 程序烧录到Flash中 ZYNQ与以往的直接烧录Flash不同&#xff0c;首先必须PS&#xff0c;然后烧…

python实例100第23例:打印菱形图案

题目&#xff1a;打印出如下图案&#xff08;菱形&#xff09;: ********* ****************程序分析&#xff1a;先把图形分成两部分来看待&#xff0c;前四行一个规律&#xff0c;后三行一个规律&#xff0c;利用双重for循环&#xff0c;第一层控制行&#xff0c;第二层控制列…

golang中make与new有什么区别?

前言 记录下go语言中函数new与make的使用和区别&#xff0c;关于go语言中new和make是内建的两个函数&#xff0c;主要用来创建分配类型内存。 目录 前言make介绍用法&#xff1a;1. 创建切片&#xff08;slice&#xff09;&#xff1a;2. 创建映射&#xff08;map&#xff09;…

AWS Secrets Manager 实战指南

AWS Secrets Manager 是一项强大的服务,用于安全地管理和存储敏感信息,如数据库凭证、API 密钥等。本实战指南将指导你如何在实际应用中使用 AWS Secrets Manager。 创建 Secret 首先,我们需要在 Secrets Manager 中创建一个新的 Secret 来存储敏感信息。 登录 AWS 控制台…

2744. 最大字符串配对数目

Problem: 2744. 最大字符串配对数目 文章目录 思路解题方法复杂度Code拓展官方解法拓展解释 思路 要求返回数组中的反转字符数目&#xff1b;数组中每个元素都是固定的2个长度的小写字符串&#xff0c;且不相同&#xff1b;由不相同可知如果是aa&#xff0c;bb这种类型的必定不…

spring-boot定时任务

org.springframework.boot jar包 内置定时任务注解 。生成定时任务有 * * * * * &#xff1f; 表示秒分时日月周。 日和周的位置 必须某个位置用&#xff1f;代替*号用于区别。 定时任务规则&#xff1a;0 * * * &#xff1f; * * 表示任意月的任意周的每天的每时的每分…

抖音矩阵云混剪系统源码(免授权版)多平台多账号一站式管理,附带系统搭建教程

搭建教程 MySQL 5.6 PHP 7.2 Apache 数据库名称 juzhen Nginx环境切换伪静态 1、解压安装包到项目根目录&#xff0c;找到application/database.php 更换自己的数据库密码 2、阿里云现有的配置不要动 其他按照文档进行添加 3、项目访问目录&#xff1a;public 4、域名…

SQL笔记 -- 查询优化

1. 关联查询优化 1.1 驱动表和被驱动表 对于内连接来说&#xff0c;优化器会根据用户的查询语句做优化&#xff0c;决定先查哪张表。先查询的那张表就是驱动表&#xff0c;反之就是被驱动表。而对于外连接来说&#xff0c;大多数情况用户指定的主表就是驱动表&#xff0c;但优…

Demo: 实现PDF加水印以及自定义水印样式

实现PDF加水印以及自定义水印样式 <template><div><button click"previewHandle">预览</button><button click"downFileHandle">下载</button><el-input v-model"watermarkText" /><el-input v-mo…

敏捷开发之Scrum

敏捷开发是什么 我们一般习惯用瀑布模型&#xff0c;它以文档为驱动&#xff0c;将软件生命周期划分为固定的六个基本活动&#xff0c;并且规定了它们自上而下、相互衔接的次序&#xff0c;如同瀑布流水&#xff0c;逐级下落。 那什么是敏捷开发呢&#xff1f; ​ 敏捷开发的核…

解决前端笔记本电脑屏幕显示缩放比例125%、150%对页面大小的影响问题

近期在工作中遇到一个问题&#xff0c;记录一下&#xff0c;在项目上线之后&#xff0c;遇到一个问题&#xff0c;即缩放到90%时&#xff0c;页面字体比默认的100%字体大&#xff0c;一开始毫无头绪&#xff0c;经过一番的Google...Google...Google....&#xff0c;终于找到了解…

代码随想录算法训练营第五天| 总结数组专题

数组&#xff1a;二分查找、双指针&#xff08;包括快慢指针&#xff09;、滑动窗口、模拟 链表&#xff1a;双指针、三指针、虚拟头指针、复杂指针操作画图明确每一步&#xff08;标好次序&#xff09; 数组 代码随想录总结的很好&#xff0c;如下图。我再结合自己的一些理解…

AI 的未来是开源的

想象一下&#xff0c;在未来&#xff0c;人工智能不会被锁在公司的金库里&#xff0c;而是由全球创新者社区一砖一瓦地在开放中构建的。协作&#xff0c;而不是竞争&#xff0c;推动进步&#xff0c;道德考虑与原始绩效同等重要。这不是科幻小说&#xff0c;而是人工智能发展核…

【PostgreSQL内核学习(二十四) —— (ALTER MATERIALIZED VIEW)】

ALTER MATERIALIZED VIEW 概述源码解析修改物化视图的属性和行为AlterTableStmt 结构体AlterTableMoveAllStmt 结构体 重命名RenameStmt 结构体 设置对象依赖于扩展AlterObjectDependsStmt 结构体 测试用例 声明&#xff1a;本文的部分内容参考了他人的文章。在编写过程中&…

C++I/O流——(4)格式化输入/输出(第二节)

归纳编程学习的感悟&#xff0c; 记录奋斗路上的点滴&#xff0c; 希望能帮到一样刻苦的你&#xff01; 如有不足欢迎指正&#xff01; 共同学习交流&#xff01; &#x1f30e;欢迎各位→点赞 &#x1f44d; 收藏⭐ 留言​&#x1f4dd; 含泪播种的人一定能含笑收获&#xff…

73.网游逆向分析与插件开发-背包的获取-物品数据的初步数据分析

内容参考于&#xff1a;易道云信息技术研究院VIP课 上一个内容&#xff1a;72.网游逆向分析与插件开发-背包的获取-项目需求与需求拆解-CSDN博客 然后首先找切入点&#xff1a; 通过药物来当切入点&#xff0c;药物比较好使用&#xff0c;然后鼠标放到药物上它有名字、种类、…

Java注解技术

1. 注解的简介 从JDK 5开始&#xff0c;Java增加了对元数据&#xff08;MetaData&#xff09;的支持&#xff0c;也就是注解&#xff08;Annotation&#xff09;。 注解就是代码里的特殊标记&#xff0c;这些标记可以在编译、类加载、运行时被读取&#xff0c;并执行相应的处…

【分布式技术】分布式存储ceph之RGW接口

目录 1、对象存储概念 2、创建 RGW 接口 //在管理节点创建一个 RGW 守护进程 #创建成功后默认情况下会自动创建一系列用于 RGW 的存储池 #默认情况下 RGW 监听 7480 号端口 //开启 httphttps &#xff0c;更改监听端口 #更改监听端口 ​ //创建 RadosGW 账户 …

【Go学习】macOS+IDEA运行golang项目,报command-line-arguments,undefined

写在前面的话&#xff1a;idea如何配置golang&#xff0c;自行百度 问题1&#xff1a;通过idea的terminal执行go test报错 ✘ xxxxxmacdeMacBook-Pro-3  /Volumes/mac/.../LearnGoWithTests/hello  go test go: go.mod file not found in current directory or any parent …

【LeetCode热题100】【子串】和为 K 的子数组

题目 给你一个整数数组 nums 和一个整数 k &#xff0c;请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 示例 1&#xff1a; 输入&#xff1a;nums [1,1,1], k 2 输出&#xff1a;2示例 2&#xff1a; 输入&#xff1a;nums [1,…