当前位置: 首页 > news >正文

HTML5 Web 存储:超越 Cookie 的本地存储新选择

一、引言

在当今的 Web 开发领域,对于用户数据的本地存储需求日益增长。HTML5 带来了一种比传统 cookie 更强大、更安全、更高效的本地存储方式 ——Web 存储。本文将深入探讨 HTML5 Web 存储的相关知识,包括其基本概念、浏览器支持情况、localStorage 和 sessionStorage 的使用方法,以及如何利用它们开发实用的 Web 应用程序。

二、HTML5 Web 存储概述

HTML5 Web 存储允许开发者在本地存储用户的浏览数据。与早期使用的 cookie 不同,Web 存储的数据不会被发送到服务器,仅用于用户请求网站数据时,这大大提高了数据的安全性。而且,它能够存储大量数据,且不会对网站性能造成明显影响。数据以键 / 值对的形式存在,并且每个 web 网页的数据只能由该网页访问使用。

三、浏览器支持情况

主流浏览器如 Internet Explorer 8+、Firefox、Opera、Chrome 和 Safari 都支持 Web 存储。但需要注意的是,Internet Explorer 7 及更早版本不支持这一特性。在使用 Web 存储前,开发者应通过以下代码检查浏览器是否支持:

if(typeof(Storage)!=="undefined") {// 是的! 支持 localStorage  sessionStorage 对象!// 一些代码.....
} else {// 抱歉! 不支持 web 存储。
}

四、localStorage 和 sessionStorage

客户端存储数据主要通过两个对象实现:

  1. localStorage:用于长久保存整个网站的数据,数据没有过期时间,直到手动删除。例如:
// 存储
localStorage.setItem("sitename", "菜鸟教程");
// 查找
document.getElementById("result").innerHTML = "网站名:" +  localStorage.getItem("sitename");

也可以使用点语法进行操作:

// 存储
localStorage.sitename = "菜鸟教程";
// 查找
document.getElementById("result").innerHTML = localStorage.sitename;

删除数据时,可以使用 localStorage.removeItem("sitename");,清空所有数据则使用 localStorage.clear();

  1. sessionStorage:用于临时保存同一窗口(或标签页)的数据,在关闭窗口或标签页之后数据会被删除。例如:
if (sessionStorage.clickcount) {sessionStorage.clickcount=Number(sessionStorage.clickcount)+1;
} else {sessionStorage.clickcount=1;
}
document.getElementById("result").innerHTML="在这个会话中你已经点击了该按钮 " + sessionStorage.clickcount + " 次 ";

五、Web Storage 应用实例

我们可以利用 Web 存储开发一个简单的网站列表程序,实现以下功能:

  1. 输入网站名和网址,以网站名作为 key 存入 localStorage
  2. 根据网站名查找对应的网址。
  3. 列出当前已保存的所有网站。

以下是实现这些功能的关键代码:

//保存数据  
function save(){  var siteurl = document.getElementById("siteurl").value;  var sitename = document.getElementById("sitename").value;  localStorage.setItem(sitename, siteurl);alert("添加成功");
}
//查找数据  
function find(){  var search_site = document.getElementById("search_site").value;  var sitename = localStorage.getItem(search_site);  var find_result = document.getElementById("find_result");  find_result.innerHTML = search_site + "的网址是:" + sitename;  
}

对应的 HTML 代码如下:

<div style="border: 2px dashed #ccc;width:320px;text-align:center;">     <label for="sitename">网站名(key):</label>  <input type="text" id="sitename" name="sitename" class="text"/>  <br/>  <label for="siteurl">网 址(value):</label>  <input type="text" id="siteurl" name="siteurl"/>  <br/>  <input type="button" onclick="save()" value="新增记录"/>  <hr/>  <label for="search_site">输入网站名:</label>  <input type="text" id="search_site" name="search_site"/>  <input type="button" onclick="find()" value="查找网站"/>  <p id="find_result"><br/></p>  
</div>

六、存储对象数据

当需要存储更复杂的数据时,我们可以使用 JSON.stringify 将对象转换为字符串进行存储,再使用 JSON.parse 将字符串转换回 JSON 对象。示例代码如下:

//保存数据  
function save(){  var site = new Object;site.keyname = document.getElementById("keyname").value;site.sitename = document.getElementById("sitename").value;  site.siteurl = document.getElementById("siteurl").value;var str = JSON.stringify(site); // 将对象转换为字符串localStorage.setItem(site.keyname,str);  alert("保存成功");
}  
//查找数据  
function find(){  var search_site = document.getElementById("search_site").value;  var str = localStorage.getItem(search_site);  var find_result = document.getElementById("find_result");var site = JSON.parse(str);  find_result.innerHTML = search_site + "的网站名是:" + site.sitename + ",网址是:" + site.siteurl;  
}

对应的 HTML 代码为:

<div style="border: 2px dashed #ccc;width:320px;text-align:center;"><label for="keyname">别名(key):</label>  <input type="text" id="keyname" name="keyname" class="text"/>  <br/>  <label for="sitename">网站名:</label>  <input type="text" id="sitename" name="sitename" class="text"/>  <br/>  <label for="siteurl">网 址:</label>  <input type="text" id="siteurl" name="siteurl"/>  <br/>  <input type="button" onclick="save()" value="新增记录"/>  <hr/>  <label for="search_site">输入别名(key):</label>  <input type="text" id="search_site" name="search_site"/>  <input type="button" onclick="find()" value="查找网站"/>  <p id="find_result"><br/></p>  
</div>

七、总结

HTML5 Web 存储为开发者提供了一种强大且实用的本地数据存储方式,通过合理使用 localStorage 和 sessionStorage,可以有效地提升 Web 应用程序的用户体验和数据管理效率。在实际开发中,我们应根据数据的使用场景和需求,灵活选择合适的存储方式,并注意数据格式的转换和错误处理,以确保应用程序的稳定性和可靠性。

希望本文对大家理解和使用 HTML5 Web 存储有所帮助,欢迎大家在评论区交流讨论,分享更多关于 Web 存储的实践经验和技巧。

相关文章:

HTML5 Web 存储:超越 Cookie 的本地存储新选择

一、引言 在当今的 Web 开发领域&#xff0c;对于用户数据的本地存储需求日益增长。HTML5 带来了一种比传统 cookie 更强大、更安全、更高效的本地存储方式 ——Web 存储。本文将深入探讨 HTML5 Web 存储的相关知识&#xff0c;包括其基本概念、浏览器支持情况、localStorage …...

基于 DB、EAST、SAST 的文本检测算法详解及应用综述

摘要 近年来&#xff0c;随着深度学习在计算机视觉领域的广泛应用&#xff0c;自然场景文字检测技术取得了飞速发展。针对复杂背景、任意形状、多角度文本等问题&#xff0c;学术界和工业界陆续提出了 DB、EAST、SAST 等多种算法。本文详细介绍了这几种主流文本检测方法的原理…...

牙刷生产中的视觉检测,让刷毛缺陷检测高效便捷!

在日常口腔护理中&#xff0c;一把优质牙刷至关重要&#xff0c;而刷毛质量直接决定了牙刷品质。从生产端来看&#xff0c;牙刷制造行业正面临着品质管控的严峻挑战。人工目检在检测刷毛缺陷时&#xff0c;不仅效率低下&#xff0c;还极易因主观因素导致漏检、误检&#xff0c;…...

面向对象编程(OOP)核心概念进阶

面向对象编程&#xff08;OOP&#xff09;核心概念进阶 final 关键字 行为特征&#xff1a;作为终结者关键字&#xff0c;用于限制类、方法、变量的可修改性 三层控制力&#xff1a; - 修饰类&#xff1a; 定义不可继承的最终类&#xff08;如 String、Integer 等不可变类核…...

AI与教育的协奏曲:重构未来学习生态

📝个人主页🌹:慌ZHANG-CSDN博客 🌹🌹期待您的关注 🌹🌹 引言:教育的“智变”来临 在经历了千年的教与学之后,教育终于迎来了最大规模的技术变革浪潮。随着ChatGPT、DeepSeek、Grok 等大语言模型的诞生与不断演进,AI正以前所未有的方式深入影响每一个学生、老师…...

性能炸裂的数据可视化分析工具:DataEase!

今天分享一款开源的数据可视化分析工具&#xff0c;帮助用户快速分析数据并洞察业务趋势&#xff0c;从而实现业务的改进与优化。支持丰富的数据源连接&#xff0c;能够通过拖拉拽方式快速制作图表&#xff0c;并可以方便地与他人分享。 技术栈 前端&#xff1a;Vue.js、Elemen…...

9.thinkphp的请求

请求对象 当前的请求对象由think\Request类负责&#xff0c;该类不需要单独实例化调用&#xff0c;通常使用依赖注入即可。在其它场合则可以使用think\facade\Request静态类操作。 项目里面应该使用app\Request对象&#xff0c;该对象继承了系统的think\Request对象&#xff…...

UBUNTU20.04安装ros2

ubuntu20.04安装ROS2 详细教程_ubuntu20.04 ros2-CSDN博客...

数据可视化工具LightningChart .NET v12.2.1全新发布——支持新的 .NET 目标框架

LightningChart.NET完全由GPU加速&#xff0c;并且性能经过优化&#xff0c;可用于实时显示海量数据-超过10亿个数据点。 LightningChart包括广泛的2D&#xff0c;高级3D&#xff0c;Polar&#xff0c;Smith&#xff0c;3D饼/甜甜圈&#xff0c;地理地图和GIS图表以及适用于科学…...

Python + Playwright:规避常见的UI自动化测试反模式

Python + Playwright:规避常见的UI自动化测试反模式 前言反模式一:整体式页面对象(POM)反模式二:具有逻辑的页面对象 - POM 的“越界”行为反模式三:基于 UI 的测试设置 - 缓慢且脆弱的“舞台搭建”反模式四:功能测试过载 - “试图覆盖一切”的测试反模式之间的关联与核…...

蓝宝石狼组织升级攻击工具包,利用新型紫水晶窃密软件瞄准能源企业

网络安全专家发现&#xff0c;被称为"蓝宝石狼"&#xff08;Sapphire Werewolf&#xff09;的威胁组织正在使用升级版"紫水晶"&#xff08;Amethyst&#xff09;窃密软件&#xff0c;对能源行业企业发起复杂攻击活动。此次攻击标志着该组织能力显著提升&am…...

高光谱相机:温室盆栽高通量植物表型光谱成像研究

传统植物表型测量依赖人工观察与手工记录&#xff0c;存在效率低、主观性强、无法获取多维数据&#xff08;如生化成分、三维形态&#xff09;等缺陷。例如&#xff0c;叶片氮含量需破坏性取样检测&#xff0c;根系表型需挖掘植株&#xff0c;导致数据不连续且难以规模化。此外…...

Android Studio安装平板的虚拟机

其实很简单&#xff0c;但是我刚开始也是一窍不通&#xff0c;所以也查了好多资料才会的&#xff0c;本文仅作为个人学习笔记分享&#xff0c;有跟我一样的小白可以当做一个参考&#xff0c;有什么问题也欢迎大家提出建议&#xff0c;俺会虚心接受并改进的~ 首先我们打开项目&…...

Redis 常问知识

1.Redis 缓存穿透问题 缓存穿透&#xff1a;当请求的数据在缓存和数据库中不存在时&#xff0c;该请求就跳出我们使用缓存的架构&#xff08;先从缓存找&#xff0c;再从数据库查找、这样就导致了一直去数据库中找&#xff09;&#xff0c;因为这个数据缓存中永远也不会存在。…...

UnityUI:Canvas框架获取鼠标悬浮UI

将下面脚本挂在主体Canvas上&#xff0c;Canvas会对下面所有Image挂上PointerHandler脚本&#xff0c;并且可以通过GetPointEnter方法判断当前鼠标是否悬停在UI上 public class BaseCanvas : MonoBehaviour {public static BaseCanvas Main;private void Awake(){Main this;I…...

NLP实战(3):RNN英文名国家分类

目录 1. 项目需求 2. 模型解析 2.1 网络模型 2.2 准备数据 2.3 双向循环神经网络 3. 代码解析 4. 完整代码 5. 结果 1. 项目需求 对名字的分类&#xff0c;几千个名字&#xff0c;总共来自于18个国家 2. 模型解析 对于自然语言处理来说&#xff0c;输入是一个序列&am…...

东方博宜OJ ——1335 - 土地分割

递归 入门 ————1335 - 土地分割 1335 - 土地分割题目描述输入输出样例问题分析递归解法&#xff08;欧几里得算法&#xff09;代码实现总结 1335 - 土地分割 题目描述 把一块m * n米的土地分割成同样大的正方形&#xff0c;如果要求没有土地剩余&#xff0c;分割出的正方形…...

在轨道交通控制系统中如何实现μs级任务同步

轨道交通作为现代城市化进程中的重要支柱&#xff0c;承载着数以亿计的乘客出行需求&#xff0c;同时也是城市经济运行的命脉。无论是地铁、轻轨还是高速铁路&#xff0c;其控制系统的稳定性和可靠性直接关系到运营安全和效率。在这样一个高风险、高复杂度的环境中&#xff0c;…...

【C++教程】进制转换的实现方法

在C中进行进制转换可以通过标准库函数或自定义算法实现。以下是两种常见场景的转换方法及示例代码&#xff1a; 一、使用C标准库函数 任意进制转十进制 #include <string> #include <iostream>int main() {std::string num "1A3F"; // 十六进制数int…...

日志文件爆满_配置使用logback_只保留3天日志文件_每天定时生成一个日志文件---SpringCloud工作笔记206

日志文件爆满,springCloud微服务架构中的,日志爆满如何解决,使用脚本直接删除,会导致, 如果要删除的日志文件,还正在被进程占用,那么你即使使用脚本定时删除了,这个日志文件,那么这个日志文件实际上还是不会删除的,他的大小,依然占用磁盘,就是因为,有进程还在占用它,所以之前说…...

DICOM通讯(ACSE->DIMSE->Worklist)

DICOM 通讯协议中的 ACSE → DIMSE → Worklist 这条通讯链路。DICOM 通讯栈本身是一个多层的协议结构&#xff0c;就像 OSI 模型一样&#xff0c;逐层封装功能。 一、DICOM 通讯协议栈总体架构 DICOM 通讯使用 TCP/IP 建立连接&#xff0c;其上面封装了多个协议层次&#xf…...

QML与C++:基于ListView调用外部模型进行增删改查(附自定义组件)

目录 引言相关阅读项目结构文件组织 核心技术实现1. 数据模型设计联系人项目类 (datamodel.h)数据模型类 (datamodel.h)数据模型实现 (datamodel.cpp) 2. 主程序入口点 (main.cpp)3. 主界面设计 (Main.qml)4. 联系人对话框 (ContactDialog.qml)5. 自定义组件CustomTextField.qm…...

# linux 设置宽容模式

linux 设置宽容模式 在Linux系统中&#xff0c;通常没有直接称为“宽容模式”的设置选项&#xff0c;但你可以通过几种方式来模拟或调整系统行为&#xff0c;使其表现得更加“宽容”&#xff0c;特别是在处理错误、权限问题或其他潜在问题时。以下是一些常见的方法&#xff1a…...

#1 理解物联网

物联不是一个新概念&#xff0c;物联网如其中文译名&#xff0c; 虚拟和物的对应和联接。 对于人类的梦想而言&#xff0c;总是希望自己无比强大&#xff0c;但受限于外部条件而只能为此悻悻念念。 所以人们的目光聚焦在&#xff0c;上世纪70年代发展的传感器、大规模电路、通…...

物联网场景实战:智能电表数据管理与分析(二)

数据管理 数据清洗与预处理 智能电表在数据采集、传输和存储过程中&#xff0c;不可避免地会引入噪声、出现缺失值和异常值等问题&#xff0c;这些问题会严重影响数据的质量和后续分析的准确性&#xff0c;因此数据清洗至关重要。 噪声数据通常是由于测量误差、通信干扰等原…...

linux一次启动多个jar包

linux一次启动多个jar包并且可以自定义路径和端口号 代码使用 分享公司大神使用的一个脚步,可以一次启动多个jar包,也可以指定启动jar包 代码 #! /bin/sh # 端口号 PORTS(8080 8081 8082 8083) # 模块 MODULES(gateway auth system file) # 模块名称 MODULE_NAMES(网关服务 认…...

自然语言交互:NAS进化的下一站革命

自然语言交互&#xff1a;NAS进化的下一站革命 在数据爆炸式增长的数字时代&#xff0c;网络附加存储设备&#xff08;NAS&#xff09;早已突破企业级应用的边界&#xff0c;成为个人数字资产管理的核心枢纽。当全球NAS市场年复合增长率稳定在15%之际&#xff0c;耘想科技推出…...

go中我遇到的问题总结

go问题总结 1 - go中的nil等于java中的null吗 在 Go 和 Java 中,nil 和 null 都用于表示“空值”,但它们的实现和使用方式有所不同。 以下是 Go 中的 nil 和 Java 中的 null 之间的对比: 1. Go 中的 nil 在 Go 中,nil 是一个预定义的常量,表示零值。它的行为根据数据类…...

java面试题带答案2025最新整理

文章目录 一、java面试题集合框架1. 请简要介绍 Java 集合框架的体系结构2. ArrayList 和 LinkedList 的区别是什么3. HashMap 的工作原理是什么&#xff0c;它在 JDK 7 和 JDK 8 中有哪些不同4. 如何解决 HashMap 的线程安全问题5. TreeSet 是如何保证元素有序的 二、java面试…...

第七届浙江省大学生网络与信息安全竞赛决赛Unserialize深度解析 1.0

花还会重新开&#xff0c;不同的春来了又来。 - 2025.4.11 0x01 声明 仅作为个人学习使用&#xff0c;仅供参考&#xff0c;欢迎交流 可能是新生赛缘故&#xff0c;突发奇想&#xff0c;想好好梳理此题&#xff0c;顺便写成参考&#xff0c;于是有了这篇文章 当然很多理解可…...

onlyoffice 在线编辑集成

onlyoffice 在线编辑集成 项目中要使用word在线编辑功能&#xff0c;记录一下过程 安装使用docker版本 docker run -itd -p 8001:80 --name kodoffice --restart always registry.cn-hangzhou.aliyuncs.com/kodcloud/kodoffice:7.4.1.1 启动后http://192.168.x.x:8001/web/…...

2.4goweb 项目1

mysql库和表 CREATE DATABASE IF NOT EXISTS book_manager CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;USE book_manager;-- 用户表&#xff08;用于登录&#xff09; CREATE TABLE IF NOT EXISTS users (user_id INT AUTO_INCREMENT PRIMARY KEY,username VARCHAR(…...

ESP-ADF外设子系统深度解析:esp_peripherals组件架构与核心设计(系列开篇)

目录 ESP-ADF外设子系统深度解析&#xff1a;esp_peripherals组件架构与核心设计&#xff08;系列开篇&#xff09;简介模块概述功能定义架构位置核心特性 接口分析公共API概述1. 外设集合管理API2. 单个外设管理API3. 事件通信API4. 定时器管理API 数据结构关键数据结构分析枚…...

供应链管理:供应链管理的边界

一、追根溯源&#xff0c;什么是真正的财富 序号财富解释1土地作为生产资料&#xff0c;土地是农业、工业、商业的基础 城市中心的土地因稀缺性而价值连城&#xff0c;农业土地的肥沃程度直接影响粮食产量。2资源、矿产提供能源和原材料&#xff0c;支撑工业生产和经济发展。 …...

【Linux网络编程】TCP Echo Server的实现

本文专栏&#xff1a;linux网络编程 本文的基础知识是基于上篇文章&#xff1a;UDP Echo Server的实现 传送门&#xff1a; 【Linux网络编程】UDP Echo Server的实现 -CSDN博客 目录 一&#xff0c;InetAddr类的编写 二&#xff0c;客户端代码编写 创建套接字&#xff08;s…...

信奥赛CSP-J复赛集训(数学思维专题)(11):P9585 「MXOI Round 2」酒店

信奥赛CSP-J复赛集训&#xff08;数学思维专题&#xff09;&#xff08;11&#xff09;&#xff1a;P9585 「MXOI Round 2」酒店 题目描述 小 C 开了一家酒店&#xff0c;叫做 CC Hotel。 一天&#xff0c;CC Hotel 来了 n n n 位客人。小 C 需要把他们都安排在酒店的某一层…...

python: audioFlux XXCC 提取梅尔频率倒谱系数 MFCC

承上一篇&#xff1a;python&#xff1a;audioFlux 使用教程 XXCC: 倒谱系数&#xff0c;支持所有频谱类型. 可以提取梅尔频率倒谱系数&#xff08;MFCC&#xff09; Cepstrum coefficients, supports all spectrum types. 以下是使用 audioflux 库中 XXCC 类计算倒谱系数…...

PHP + Go 如何协同打造高并发微服务?

为什么需要 PHP Go 协同&#xff1f; 在微服务架构中&#xff0c;PHP 和 Go 看似是“两个世界”的语言&#xff0c;但它们的互补性极强&#xff1a; PHP&#xff1a;开发效率高、生态成熟&#xff0c;适合快速实现复杂业务逻辑&#xff08;如电商订单、用户系统&#xff09;…...

k8s工具使用

Kubectl Cheat Sheet k8s的命令级别 1.基础命令(初级) 2.基础命令(中级) 3.部署命令 4.集群管理命令 5.故障排查和调试命令 6.高级命令 7.设置命令 8.其它命令 命令行提示 为了使用kubectl命令更加高效,我们可以选择安装一下开源软件来增加操作kubectl命令的快捷方式,同…...

uml制做参考-以代码画UML图

【PlantUML系列】类图&#xff08;一&#xff09;_plantuml skin-CSDN博客 UML入门以及Plant UML工具介绍_plantuml-CSDN博客 UML类图详解-CSDN博客 【PlantUML】-类图-CSDN博客 【掌握绘图艺术】用PlantUML绘制完美UML图表&#xff0c;编程开发者的福音 - 知乎 如何优化P…...

深入解析B站androidApp接口:从bilibili.api.ticket.v1.Ticket/GetTicket到SendMsg的技术分析

前言 最近一段时间&#xff0c;我对B站的App接口进行了深入分析&#xff0c;特别是关注了认证机制和私信功能的实现。通过逆向工程和网络抓包&#xff0c;发现了B站移动端API的底层工作原理&#xff0c;包括设备标识生成机制、认证流程和消息传输协议。本文将分享这些研究成果…...

[AI ][Dify] 构建一个自动化新闻编辑助手:Dify 工作流实战指南

在内容创作行业中,自动化辅助工具已成为提升编辑效率的重要利器。本文将通过 Dify 平台,演示如何构建一个**“新闻编辑助手”**,实现从网页抓取、文本翻译、标题生成,到新闻配图的全流程自动化。 🎯 目标概览 这个工作流旨在实现如下功能: 从指定网页抓取新闻内容; 使…...

Unity中国战略调整简讯:Unity6下架 团结引擎接棒

Unity中国战略调整简讯&#xff1a;Unity6下架 团结引擎接棒 免费版 2025年4月9日 —— Unity中国宣布自即日起&#xff0c;中国大陆及港澳地区停止提供Unity 6及后续版本下载与服务&#xff0c;相关功能由国产引擎“团结引擎”承接。国际版2022 LTS及更早版本仍由Unity中国维护…...

司美格鲁肽用SNAC市场报告:2024年全球市场销售额达到了0.14亿美元

引言&#xff1a;了解司美格鲁肽与SNAC的重要性 在当前的医药领域&#xff0c;司美格鲁肽&#xff08;Semaglutide&#xff09;作为一种创新性的治疗2型糖尿病和肥胖症的药物&#xff0c;受到了广泛关注。而SNAC&#xff08;N-&#xff08;8-&#xff08;2-羟苯基&#xff09;…...

自动驾驶第一性原理

所谓的第一性原理&#xff1a; 就是指从最基本的物理规律&#xff0c;数据逻辑及工程约束条件出发&#xff0c;剥离所有的非本质的假设&#xff0c;直接推导出自动驾驶最核心的要素。 自动驾驶核心框架分解&#xff1a; 1、根本目标&#xff1a; 安全高效的将人/物从A地运送…...

《UE5_C++多人TPS完整教程》学习笔记36 ——《P37 拾取组件(Pickup Widget)》

本文为B站系列教学视频 《UE5_C多人TPS完整教程》 —— 《P37 拾取组件&#xff08;Pickup Widget&#xff09;》 的学习笔记&#xff0c;该系列教学视频为计算机工程师、程序员、游戏开发者、作家&#xff08;Engineer, Programmer, Game Developer, Author&#xff09; Steph…...

Uniswap V2/V3/V4 流动性与价格计算详解

Uniswap V2/V3/V4 流动性与价格计算详解 一、核心概念对比 Uniswap V2 流动性模型: 恒定乘积公式 (x * y = k)价格决定: 完全由池子中的代币数量决定 (price = y/x)流动性衡量: 总储备量代表流动性,直接通过 getReserves() 获取流动性分布: 均匀分布在所有价格点交易费用: 固…...

yum安装MySQL数据库

yum安装方式 优点&#xff1a;操作简单易用。不用单独下载&#xff0c;服务器可以联网且yum源没有问题即可(可以选择国内的163/阿里源) 安装步骤&#xff1a; 1.关闭防火墙和selinux: systemctl stop firewalld ##关闭防火墙 systemctl disable firewalld …...

大联盟(特别版)双端互动平台完整套件分享:含多模块源码+本地部署环境

这是一套结构清晰、功能完整的互动平台组件&#xff0c;适合有开发经验的技术人员进行模块参考、结构研究或本地部署实验使用。 该平台覆盖前端展示、后端服务、移动端资源以及完整数据库&#xff0c;采用模块化架构&#xff0c;整体部署流程简单清晰&#xff0c;适合自研团队参…...

【Code】《代码整洁之道》笔记-Chapter15-JUnit内幕

第15章 JUnit内幕 JUnit是最有名的Java框架之一。就像别的框架一样&#xff0c;它概念简单&#xff0c;定义精确&#xff0c;实现优雅。但它的代码是怎样的呢&#xff1f;本章将研判来自JUnit框架的一个代码例子。 15.1 JUnit框架 JUnit有很多位作者&#xff0c;但它始于K…...