《AJAX:前端异步交互的魔法指南》
什么是AJAX
AJAX(Asynchronous JavaScript and XML,异步 JavaScript 和 XML) 是一种用于创建异步网页应用的技术,允许网页在不重新加载整个页面的情况下,与服务器交换数据并局部更新页面内容。尽管名称中包含 XML,但现代 AJAX 主要使用 JSON(JavaScript Object Notation)作为数据格式。
核心原理
-
异步通信
-
浏览器通过 JavaScript 异步发送请求到服务器,同时用户可继续操作页面。
-
服务器返回数据后,JavaScript 动态更新页面指定部分,无需刷新整个页面。
-
-
基于
XMLHttpRequest
或Fetch API
-
传统 AJAX 使用
XMLHttpRequest
对象发起请求。 -
现代开发中更常用
Fetch API
(基于 Promise,语法更简洁)。
-
工作流程
sequenceDiagramparticipant 用户participant 浏览器participant 服务器用户->>浏览器: 触发事件(点击、滚动等)浏览器->>服务器: 发送异步请求(XHR/Fetch)服务器->>浏览器: 返回数据(JSON/XML/HTML)浏览器->>用户: 局部更新页面内容
关键特点
特性 | 说明 |
---|---|
异步性 | 不阻塞用户操作,后台完成数据交互。 |
无刷新更新 | 仅更新页面局部内容,避免整页重载。 |
数据格式灵活 | 支持 JSON、XML、HTML 或纯文本。 |
依赖 JavaScript | 需浏览器启用 JavaScript。 |
跨域限制 | 默认受同源策略限制,需通过 CORS(跨域资源共享)或代理解决跨域问题。 |
-
使用浏览器的 XMLHttpRequest 对象 与服务器通信
-
浏览器网页中,使用 AJAX技术(XHR对象)发起获取省份列表数据的请求,服务器代码响应准备好的省份列表数据给前端,前端拿到数据数组以后,展示到网页。
什么是axios
Axios 是一个基于 Promise 的现代化 HTTP 客户端库,专为浏览器和 Node.js 设计,用于简化前端与后端的数据交互。它封装了底层 HTTP 请求细节,提供了更简洁、易用的 API,并支持拦截器、自动 JSON 转换、请求取消等高级功能,是替代原生 XMLHttpRequest
和 Fetch API
的流行选择。
核心特性
特性 | 说明 |
---|---|
基于 Promise | 天然支持异步编程,避免回调地狱,可使用 async/await 简化代码。 |
浏览器 & Node.js 支持 | 同一套代码兼容浏览器(XHR)和 Node.js(HTTP 模块)。 |
自动 JSON 转换 | 自动将请求/响应数据与 JSON 格式互相转换。 |
拦截器机制 | 可全局拦截请求和响应,用于添加身份验证、日志、错误处理等统一逻辑。 |
取消请求 | 支持主动取消未完成的请求(如用户离开页面时终止无用请求)。 |
并发请求 | 通过 axios.all() 和 axios.spread() 处理多个并行请求。 |
客户端防御 XSRF | 支持自动添加 XSRF Token 到请求头,增强安全性。 |
超时控制 | 可设置请求超时时间,避免长时间等待无响应。 |
基础用法示例
1. 发起 GET 请求
import axios from 'axios';// 基本 GET 请求
axios.get('https://api.example.com/data').then(response => {console.log(response.data); // 响应数据}).catch(error => {console.error('请求失败:', error);});// 带参数的 GET 请求
axios.get('https://api.example.com/user', {params: {id: 123,type: 'vip'}
});
2. 发起 POST 请求
axios.post('https://api.example.com/login', {username: 'admin',password: '123456'
})
.then(response => {console.log('登录成功:', response.data.token);
});
3. 并发请求
const getUser = axios.get('/user/123');
const getPosts = axios.get('/posts');axios.all([getUser, getPosts]).then(axios.spread((userRes, postsRes) => {console.log('用户数据:', userRes.data);console.log('帖子数据:', postsRes.data);}));
4. 全局配置
// 设置全局默认值(如 API 基础路径)
axios.defaults.baseURL = 'https://api.example.com';
axios.defaults.headers.common['Authorization'] = 'Bearer token123';
axios.defaults.timeout = 5000; // 5秒超时
高级功能
1. 拦截器(Interceptors)
// 添加请求拦截器(如添加 Token)
axios.interceptors.request.use(config => {config.headers.Authorization = `Bearer ${localStorage.getItem('token')}`;return config;
}, error => {return Promise.reject(error);
});// 添加响应拦截器(如统一处理错误)
axios.interceptors.response.use(response => {return response.data; // 直接返回数据部分
}, error => {if (error.response.status === 401) {alert('登录已过期,请重新登录!');window.location.href = '/login';}return Promise.reject(error);
});
2. 取消请求
const source = axios.CancelToken.source();axios.get('/data', {cancelToken: source.token
}).catch(error => {if (axios.isCancel(error)) {console.log('请求被取消:', error.message);}
});// 取消请求(参数为可选提示信息)
source.cancel('用户主动取消操作');
Axios vs Fetch API
对比项 | Axios | Fetch API |
---|---|---|
语法简洁性 | 封装度高,API 更简洁 | 原生 API,需手动处理更多细节 |
JSON 转换 | 自动转换请求/响应数据 | 需手动调用 response.json() |
拦截器 | 支持全局请求/响应拦截 | 无内置拦截器,需自行封装 |
取消请求 | 内置支持 | 通过 AbortController 实现 |
浏览器兼容性 | 兼容 IE11+(需 polyfill) | 兼容现代浏览器,IE 不支持 |
超时控制 | 直接通过 timeout 配置 | 需结合 setTimeout 和 AbortController |
常见问题解决
-
跨域请求(CORS)
-
需后端配置
Access-Control-Allow-Origin
等响应头。 -
开发环境可通过代理(如 Webpack DevServer 代理)绕过。
-
-
文件上传
const formData = new FormData(); formData.append('file', fileInput.files[0]);axios.post('/upload', formData, {headers: { 'Content-Type': 'multipart/form-data' } });
-
错误处理统一封装
建议通过拦截器集中处理 HTTP 状态码和业务错误码。
什么是URL
URL(Uniform Resource Locator,统一资源定位符) 是用于标识和定位互联网上资源(如网页、图片、视频等)的字符串。它是 Web 的核心组成部分,用户通过 URL 访问特定资源,浏览器通过 URL 向服务器请求数据。
URL 的结构
一个完整的 URL 通常由以下部分组成:
协议://主机名:端口号/路径?查询参数#片段标识符
示例
https://www.example.com:443/path/to/resource?name=value#section1
URL 的组成部分详解
部分 | 说明 |
---|---|
协议(Scheme) | 指定访问资源使用的协议,常见的有: - http :超文本传输协议- https :加密的 HTTP- ftp :文件传输协议- mailto :电子邮件地址 |
主机名(Host) | 资源所在服务器的域名或 IP 地址,如 www.example.com 。 |
端口号(Port) | 服务器监听的端口号,默认端口可省略(如 HTTP 默认 80,HTTPS 默认 443)。 |
路径(Path) | 资源在服务器上的具体位置,如 /path/to/resource 。 |
查询参数(Query) | 以 ? 开头,包含键值对,用于传递额外信息,如 ?name=value&age=25 。 |
片段标识符(Fragment) | 以 # 开头,指向资源内部的特定部分(如 HTML 页面的锚点)。 |
URL里的查询参数
什么是查询参数 ?
-
携带给服务器额外信息,让服务器返回我想要的某一部分数据而不是全部数据
-
举例:查询河北省下属的城市列表,需要先把河北省传递给服务器
-
查询参数的语法 ?
-
在 url 网址后面用?拼接格式:XXXX参数名1=值1&参数名2=值2
-
参数名一般是后端规定的,值前端看情况传递即可
-
-
axios 如何携带查询参数?
使用 params 选项即可
axios({url: '目标资源地址',params: {参数名: 值}
}).then(result => {// 对服务器返回的数据做后续处理
})
常用请求和数据提交
想要提交数据,先来了解什么是请求方法
-
请求方法是一些固定单词的英文,例如:GET,POST,PUT,DELETE,PATCH(这些都是http协议规定的),每个单词对应一种对服务器资源要执行的操作。
什么时候进行数据提交呢?
-
例如:多端要查看同一份订单数据,或者使用同一个账号进行登录,那订单/用户名+密码,就需要保存在服务器上,随时随地进行访问
axios 如何提交数据到服务器呢?
axios({url: '目标资源地址',method: '请求方法',data: {参数名: 值}
}).then(result => {// 对服务器返回的数据做后续处理
})
AXIOS的错误处理
Axios 的错误处理 是开发中非常重要的一部分,能够有效应对网络请求中的各种异常情况(如网络错误、服务器错误、超时等)。Axios 提供了多种方式来处理错误,包括 catch
方法、try/catch
语法(结合 async/await
)以及拦截器机制。
Axios 的错误对象包含以下关键属性:
-
message
:错误描述。 -
response
:服务器返回的响应对象(如果有)。-
status
:HTTP 状态码(如 404、500)。 -
data
:服务器返回的错误数据。
-
-
request
:请求对象(如果请求已发出但未收到响应)。 -
config
:请求的配置信息。
示例:使用 catch
处理错误
axios.get('https://api.example.com/data').then(response => {console.log('请求成功:', response.data);}).catch(error => {if (error.response) {// 服务器返回了错误状态码(4xx/5xx)console.error('服务器错误:', error.response.status, error.response.data);} else if (error.request) {// 请求已发出但未收到响应console.error('网络错误:', error.message);} else {// 其他错误(如配置错误)console.error('请求配置错误:', error.message);}});
示例:使用 async/await
处理错误
async function fetchData() {try {const response = await axios.get('https://api.example.com/data');console.log('请求成功:', response.data);} catch (error) {if (error.response) {console.error('服务器错误:', error.response.status, error.response.data);} else if (error.request) {console.error('网络错误:', error.message);} else {console.error('请求配置错误:', error.message);}}
}
表白是表明心意,不是索取关系。
相关文章:
《AJAX:前端异步交互的魔法指南》
什么是AJAX AJAX(Asynchronous JavaScript and XML,异步 JavaScript 和 XML) 是一种用于创建异步网页应用的技术,允许网页在不重新加载整个页面的情况下,与服务器交换数据并局部更新页面内容。尽管名称中包含 XML&…...
Elasticsearch 2025/3/7
高性能分布式搜索引擎。 数据库模糊搜索比较慢,但用搜索引擎快多了。 下面是一些搜索引擎排名 Lucene是一个Java语言的搜索引擎类库(一个工具包),apache公司的顶级项目。 优势:易扩展、高性能(基于倒排索引…...
LLM论文笔记 19: On Limitations of the Transformer Architecture
Arxiv日期:2024.2.26机构:Columbia University / Google 关键词 Transformer架构幻觉问题数学谜题 核心结论 1. Transformer 无法可靠地计算函数组合问题 2. Transformer 的计算能力受限于信息瓶颈 3. CoT 可以减少 Transformer 计算错误的概率&#x…...
那年周五放学
2025年3月7日,周五,天气晴,脑子一瞬间闪过02-05年中学期间某个周五下午,17:00即将放学的场景,那种激动,那种说不上的欣喜感,放学后,先走一段316国道,再走一段襄渝铁路&am…...
002-SpringCloud-OpenFeign(远程调用)
SpringCloud-OpenFeign 1.引入依赖2.编写一个远程调用接口3.测试 1.引入依赖 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId> </dependency><dependencyManageme…...
SAP 顾问的五年职业规划
SAP 顾问的职业发展受到技术进步、企业需求变化和全球经济环境的影响,因此制定长远规划充满挑战。面对 SAP 产品路线图的不确定性,如向 S/4HANA 和 Business Technology Platform (BTP) 的转变,顾问必须具备灵活性,以保持竞争力和…...
Pandas使用stack和pivot实现数据透视
Pandas的stack和pivot实现数据透视 经过统计得到多维度指标数据非常常见的统计场景,指定多个维度,计算聚合后的指标 案例:统计得到“电影评分数据集”,每个月份的每个分数被评分多少次:(月份,分…...
图像生成-ICCV2019-SinGAN: Learning a Generative Model from a Single Natural Image
图像生成-ICCV2019-SinGAN: Learning a Generative Model from a Single Natural Image 文章目录 图像生成-ICCV2019-SinGAN: Learning a Generative Model from a Single Natural Image主要创新点模型架构图生成器生成器源码 判别器判别器源码 损失函数需要源码讲解的私信我 S…...
c++ 操作符重载详解与示例
c 操作符重载详解与示例 操作符重载详解一、基本规则二、必须作为成员函数重载的运算符1. 赋值运算符 2. 下标运算符 []3. 函数调用运算符 ()4. 成员访问运算符 ->5. 转型运算符 三、通常作为非成员函数重载的运算符1. 算术运算符 2. 输入/输出运算符 << >> 四、…...
在Spring Boot项目中分层架构
常见的分层架构包括以下几层: 1. Domain 层(领域层) 作用:领域层是业务逻辑的核心,包含与业务相关的实体类、枚举、值对象等。它是对业务领域的抽象,通常与数据库表结构直接映射。 主要组件: 实体类(Entity):与数据库表对应的Java类,通常使用JPA或MyBatis等ORM框架…...
upload-labs详解(1-12)文件上传分析
目录 uploa-labs-main upload-labs-main第一关 前端防御 绕过前端防御 禁用js Burpsuite抓包改包 upload-labs-main第二关 上传测试 错误类型 upload-labs-env upload-labs-env第三关 上传测试 查看源码 解决方法 重命名,上传 upload-labs-env第四关…...
无人机应用探索:玻纤增强复合材料的疲劳性能研究
随着无人机技术的快速发展,轻量化已成为其结构设计的核心需求。玻纤增强复合材料凭借高强度、低密度和优异的耐环境性能,成为无人机机身、旋翼支架等关键部件的理想选择。然而,无人机在服役过程中需应对复杂多变的环境:高空飞行时…...
计算机毕业设计Python+DeepSeek-R1大模型空气质量预测分析(源码+文档+PPT+讲解)
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
【渗透测试】基于时间的盲注(Time-Based Blind SQL Injection)
发生ERROR日志告警 查看系统日志如下: java.lang.IllegalArgumentException: Illegal character in query at index 203: https://api.weixin.qq.com/sns/jscode2session?access_token90_Vap5zo5UTJS4jbuvneMkyS1LHwHAgrofaX8bnIfW8EHXA71IRZwsqzJam9bo1m3zRcSrb…...
学习threejs,Animation、Core、CustomBlendingEquation、Renderer常量汇总
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️Animation常量汇总1.1.1 循…...
2、数据库的基础学习(中):分组查询、连接查询 有小例子
二、分组函数 功能:用作统计使用,又称为聚合函数或者统计函数或组函数 1、分类: sum 求和、avg 平均值、max最大值、min 最小值、count 计算个数 2、参数支持哪些类型 Sum\avg 一般处理数值型数据 max、min 可以数值型也可以字符型…...
Ubuntu搭建最简单WEB服务器
安装apache2 sudo apt install apache2 检查状态 $ sudo systemctl status apache2 ● apache2.service - The Apache HTTP ServerLoaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor prese>Active: active (running) since Thu 2025-03-06 09:51:10…...
如何学习编程?
如何学习编程? 笔记来源:How To Study Programming The Lazy Way 声明:该博客内容来自链接,仅作为学习参考 写在前面的话: 大多数人关注的是编程语言本身,而不是解决问题和逻辑思维。不要试图记住语言本身…...
OpenCV计算摄影学(14)实现对比度保留去色(Contrast Preserving Decolorization)的函数decolor()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 将彩色图像转换为灰度图像。它是数字印刷、风格化的黑白照片渲染,以及许多单通道图像处理应用中的基本工具。 cv::decolor 是 OpenCV…...
K8s 1.27.1 实战系列(七)Deployment
一、Deployment介绍 Deployment负责创建和更新应用程序的实例,使Pod拥有多副本,自愈,扩缩容等能力。创建Deployment后,Kubernetes Master 将应用程序实例调度到集群中的各个节点上。如果托管实例的节点关闭或被删除,Deployment控制器会将该实例替换为群集中另一个节点上的…...
Python第十五课:机器学习入门 | 从猜想到预测
🎯 本节目标 理解机器学习两大核心范式(监督/无监督学习)掌握特征工程的核心方法论实现经典算法:线性回归与K-Means聚类开发实战项目:房价预测模型理解模型评估与调优基础 一、机器学习核心概念(学生与老师…...
python 程序一次启动有两个进程的问题(flask)
0. 背景 写了一个使用 flask 作为服务框架的程序,发现每次启动程序的时候,使用 ps 都能观察到两个 python 进程。 此外,这个程序占用了 GPU 资源,我发现有两个 python 进程,分别占用了完全相同的 GPU 显存 1. 原因 …...
使用jcodec库,访问网络视频提取封面图片上传至oss
注释部分为FFmpeg(确实方便但依赖太大,不想用) package com.zuodou.upload;import com.aliyun.oss.OSS; import com.aliyun.oss.model.ObjectMetadata; import com.aliyun.oss.model.PutObjectRequest; import com.zuodou.oss.OssProperties;…...
MyBatis-Plus 与 Spring Boot 的最佳实践
在现代 Java 开发中,MyBatis-Plus 和 Spring Boot 的结合已经成为了一种非常流行的技术栈。MyBatis-Plus 是 MyBatis 的增强工具,提供了许多便捷的功能,而 Spring Boot 则简化了 Spring 应用的开发流程。本文将探讨如何将 MyBatis-Plus 与 Spring Boot 进行整合,并分享一些…...
python-51-使用最广泛的数据验证库Pydantic
文章目录 1 Pydantic2 models2.1 基本模型应用2.1.1 实例化2.1.2 访问属性2.1.3 修改属性2.2 嵌套模型【Optional】3 Fields3.1 Field()函数3.2 带注释的模式Annotated3.3 默认值3.3.1 default参数3.3.2 default_factory3.4 字段别名3.5 数字约束3.6 字符串约束3.7 严格模式4 A…...
Linux - 网络基础(应用层,传输层)
一、应用层 1)发送接收流程 1. 发送文件 write 函数发送数据到 TCP 套接字时,内容不一定会立即通过网络发送出去。这是因为网络通信涉及多个层次的缓冲和处理,TCP 是一个面向连接的协议,它需要进行一定的排队、确认和重传等处理…...
ADB、Appium 和 大模型融合开展移动端自动化测试
将 ADB、Appium 和 大模型(如 GPT、LLM) 结合,可以显著提升移动端自动化测试的智能化水平和效率。以下是具体的实现思路和应用场景: 1. 核心组件的作用 ADB(Android Debug Bridge): 用于与 Android 设备通信,执行设备操作(如安装应用、获取日志、截图等)。Appium: 用…...
【Pandas】pandas Series unstack
Pandas2.2 Series Computations descriptive stats 方法描述Series.argsort([axis, kind, order, stable])用于返回 Series 中元素排序后的索引位置的方法Series.argmin([axis, skipna])用于返回 Series 中最小值索引位置的方法Series.argmax([axis, skipna])用于返回 Series…...
rv1126交叉编译opencv+ffmpeg+x264
文章目录 🌕交叉编译x264🌙创建build_x264.sh(放在下载的x264目录下)🌙编译过程🌙查看编译后的so文件是否是arm版的 🌕下载编译ffmpeg🌙下载ffmpeg🌙创建编译脚本🌙创建ffmpeg编译路…...
【C++】ImGui:VSCode下的无依赖轻量GUI开发
本教程将手把手带您用纯原生方式构建ImGui应用,无需CMake/第三方库。您将全程明了自己每个操作的意义,特别适合首次接触GUI开发的新手。 环境配置 安装VSCode 作用:轻量级代码编辑器,提供智能提示操作: 官网下载安装…...
BUU44 [BJDCTF2020]ZJCTF,不过如此1 [php://filter][正则表达式get输入数据][捕获组反向引用][php中单双引号]
题目: 我仿佛见到了一位故人。。。也难怪,题目就是ZJCTF 按要求提交/?textdata://,I have a dream&filenext.php后: ......不太行,好像得用filephp://filter/convert.base64-encode/resourcenext.php 耶?那 f…...
Jetpack Compose — 入门实践
一、项目中使用 Jetpack Compose 从此节开始,为方便起见,如无特殊说明,Compose 均指代 Jetpack Compose。 开发工具: Android Studio 1.1 创建支持 Compose 新应用 新版 Android Studio 默认创建新项目即为 Compose 项目。 注意:在 Language 下拉菜单中,Kotlin 是唯一可…...
通过着装人体剪影预测关键点,以获取人体的二维尺寸数据。复现过程包括获取或生成3D人体数据集、生成轮廓图像、训练模型等步骤
根据文献《1_Clothes Size Prediction from Dressed-Human Silhouettes》复现方法,主要通过着装人体剪影预测关键点,以获取人体的二维尺寸数据。复现过程包括获取或生成3D人体数据集、生成轮廓图像、训练模型等步骤。 以下是进行复现的大致步骤…...
力扣HOT100之哈希:49. 字母异位词分组
这道题自己先想了一遍,定义了一个比较字符串的函数,用二重循环和一个数组来实现字符串的比较,若两个字符串是异位词,那么就返回true,否则返回false,在主函数中,同样用一个二重循环来遍历向量中的…...
基于单片机的智慧音乐播放系统研究
标题:基于单片机的智慧音乐播放系统研究 内容:1.摘要 随着科技的飞速发展,人们对音乐播放系统的智能化和个性化需求日益增长。本研究的目的是设计并实现一个基于单片机的智慧音乐播放系统。采用单片机作为核心控制单元,结合音频解码模块、存储模块和人机…...
pytest框架 核心知识的系统复习
1. pytest 介绍 是什么:Python 最流行的单元测试框架之一,支持复杂的功能测试和插件扩展。 优点: 语法简洁(用 assert 替代 self.assertEqual)。 自动发现测试用例。 丰富的插件生态(如失败重试、并发执…...
nginx 代理 redis
kubernetes 发布的redis服务端口为 31250 通过命令查询 [miniecs-88500735 /]$ minikube service redis --url http://192.168.49.2:31250[rootecs-88500735 /]# vi /etc/nginx/nginx.conf配置nginx.conf stream {upstream redis {server 192.168.49.2:31250;}server {liste…...
什么是:分布式贝叶斯推断
什么是:分布式贝叶斯推断 分布式贝叶斯推断(Distributed Bayesian Inference)是一种在分布式计算环境下进行贝叶斯统计推断的方法,旨在利用多节点或多设备的并行计算能力,高效处理大规模数据或复杂模型。其核心思想是将数据、模型或计算过程分解到多个节点上,通过协作完…...
C# 命名空间(Namespace)详解
在C#中,命名空间(Namespace)是一种封装和组织代码的方式,它允许将相关的类、接口、结构体和枚举等类型组织在一起,以避免命名冲突,并提供了一种逻辑上的分组方式。命名空间的使用有助于提高代码的可读性、可…...
ASP.NET Core JWT认证与授权
1.JWT结构 JSON Web Token(JWT)是一种用于在网络应用之间安全传输声明的开放标准(RFC 7519)。它通常由三部分组成,以紧凑的字符串形式表示,在身份验证、信息交换等场景中广泛应用。 2.JWT权限认证 2.1添…...
Docker参数,以及仓库搭建
一。Docker的构建参数 注释: 1.对于CMD,如果不想显示,而是使用交互界面:docker run -ti --rm --name test2 busybox:v5 sh 2.对于CMD,一个交互界面只可以使用一个,如果想多次使用CMD,则用ENTR…...
hooks useModule自定义hooks (二次封装AgGridReact ag-table)自定义表头,自定义表头搜索
场景业务: 多次运用AgGridReact的table 列表 思路: 运用自定义hooks进行二次封装: 通用配置例如:传参的参数,传参的url,需要缓存的key这些键值类 定制化配置例如:需要对table 的一些定制化传…...
机试准备第11天
第一题是浮点数加法,目前写过最长的代码。 #include <stdio.h> #include <string> #include <iostream> #include <vector> using namespace std; int main() {string str1;string str2;while (getline(cin, str1) && getline(cin…...
正则表达式详解
这里写目录标题 一、基本概念1.基本语法2.修饰符3.方括号4.元字符5.量词 二、结构1.匹配模式2.字符组3.量词4.贪婪匹配和惰性匹配5.多选分支6.匹配模式关键词 三、位置1.位置锚点2.分组与引用1.分组与编号2.不保存子组3.括号嵌套4.命名捕获组5.引用捕获组 3.回溯匹配 四、对象方…...
动态扩缩容引发的JVM堆内存震荡:从原理到实践的GC调优指南
目录 一、典型案例:系统发布后的GC雪崩事件 (一)故障现象 1. 刚刚启动时 GC 次数较多 2. 堆内存锯齿状波动 3. GC日志特征:Allocation Failure (二)问题定位 二、原理深度解析:JVM内存弹…...
本地运行Manus的替代方案:OpenManus的技术解析与实践指南
无需邀请码,三小时构建的开源智能体革命 一、背景:从Manus到OpenManus的技术突围 近期,AI智能体领域因Manus的发布引发热议。这款号称“全球首个通用型AI智能体”的产品,通过整合浏览器操作(Browser Use)…...
红果短剧安卓+IOS双端源码,专业短剧开发公司
给大家拆解一下红果短剧/河马短剧,这种看光解锁视频,可以挣金币的短剧APP。给大家分享一个相似的短剧APP源码,这个系统已接入穿山甲广告、百度广告、快手广告、腾讯广告等,类似红果短剧的玩法,可以看剧赚钱,…...
ubuntu22.04本地部署OpenWebUI
一、简介 Open WebUI 是一个可扩展、功能丰富且用户友好的自托管 AI 平台,旨在完全离线运行。它支持各种 LLM 运行器,如 Ollama 和 OpenAI 兼容的 API,并内置了 RAG 推理引擎,使其成为强大的 AI 部署解决方案。 二、安装 方法 …...
不同开发语言之for循环的用法、区别总结
一、Objective-C (1)标准的c风格 for (int i 0; i < 5; i) {NSLog("i %d", i); } (2)for in循环。 NSArray *array ["apple", "banana", "orange"]; for (NSString *fruit in …...
国产编辑器EverEdit - 宏功能介绍
1 宏 1.1 应用场景 宏是一种重复执行简单工作的利器,可以让用户愉快的从繁琐的工作中解放出来,其本质是对键盘和菜单的操作序列的录制,并不会识别文件的内容,属于无差别无脑执行。 特别是对一些有规律的重复按键动作,…...