前端笔记-AJAX
什么是AJAX?
AJAX(Asynchronous JavaScript and XML)就是异步的JS和XML, 是一种无需刷新页面即可与服务器交换数据并更新部分网页内容的技术。它的核心是通过 JavaScript 在后台发送 HTTP 请求,接收服务器返回的数据(如 JSON、XML、HTML),然后动态更新页面。
AJAX的核心特点
1. 异步通信
- 不阻塞页面,用户操作不受影响。
- 通过回调函数、Promise 或
async/await
处理响应。
2. 局部更新
- 用则加载,不用则不加载。只更新页面的某一部分,无需重新加载整个页面(如实时搜索、无限滚动)
3. 数据格式灵活
- 最初使用 XML,但现在更常用 JSON(轻量且易解析)。
AJAX的工作原理
- 浏览器:通过 JavaScript 发起 HTTP 请求(如
XMLHttpRequest
或fetch
)。 - 服务器:处理请求并返回数据(JSON/XML/HTML)。
- 浏览器:解析数据并动态更新 DOM。
用户操作 → JavaScript 发送请求 → 服务器处理 → 返回数据 → 更新页面
AJAX 的典型应用场景
- 实时搜索(输入时自动提示)
- 表单提交(无刷新提交)
- 无限滚动(滚动到页面底部加载更多内容)
- 动态加载内容(如点击选项卡切换数据)
- 用户登录验证(无需跳转页面)
AJAX的优缺点
JAX 的优缺点
优点:
- 提升用户体验(无刷新交互)。
- 减少服务器负载(只传输必要数据)。
- 支持异步处理(不阻塞用户操作)。
缺点:
- 对 SEO 不友好(动态内容可能不被搜索引擎抓取)对爬虫不友好。
- 需处理跨域问题。
- 代码复杂度较高(需管理异步状态)。
XML简介
XML(eXtensible Markup Language,可扩展标记语言) 是一种用于 存储和传输结构化数据 的标记语言,被设计用来传输和存储数据。
下面给一个简单的示例:
<!-- 描述一本书的数据 -->
<book><title>JavaScript 高级编程</title><author>John Doe</author><price currency="CNY">89.00</price>
</book>
可以从写法和框架可以看出来XML和HTML十分相像 ,但是也有很多的不同:
对比项 | XML | HTML |
---|---|---|
设计目的 | 存储和传输数据 | 展示网页内容 |
标签 | 自定义(如 <product> ) | 预定义(如 <table> ) |
语法严格性 | 严格(必须正确嵌套和闭合) | 宽松(浏览器会自动纠错) |
大小写敏感 | 是(<Book> 和 <book> 不同) | 否(通常小写) |
空格处理 | 保留空格和换行 | 合并多余空格 |
典型应用 | 配置文件、API 数据交换(如 RSS) | 网页开发 |
与 CSS/JS 关系 | 通常不直接关联 | 依赖 CSS 和 JS 实现样式和交互 |
HTTP协议
HTTP(HyperText Transfer Protocol)是客户端(如浏览器)与服务器通信的基础协议。每次交互都包含 请求报文(Request) 和 响应报文(Response),它们遵循严格的格式规范。
HTTP 请求报文格式
请求报文由 请求行、请求头、空行、请求体 四部分组成:
GET /api/data?id=123 HTTP/1.1 ← 请求行
Host: example.com ← 请求头(Headers)
User-Agent: Chrome/120.0
Accept: application/json
Content-Type: application/json← 空行(分隔Headers和Body)
{"key": "value"} ← 请求体(Body,可选)
1. 请求行(Request Line)
- 格式:
<方法> <路径> <协议版本>
GET /index.html HTTP/1.1
- 参数说明:
- 方法:
GET
(获取资源)、POST
(提交数据)、PUT
(更新资源)、DELETE
(删除资源)等。 - 路径:请求的资源路径(如
/api/data
),可包含查询参数(如?id=123
)。 - 协议版本:
HTTP/1.1
或HTTP/2
。
- 方法:
2. 请求头(Headers)
常用请求头:
Header | 作用 |
---|---|
Host | 目标服务器域名(必需) |
User-Agent | 客户端标识(如浏览器类型) |
Accept | 声明客户端可接受的响应数据类型(如 application/json ) |
Content-Type | 请求体的数据类型(如 application/json 、application/x-www-form-urlencoded ) |
Authorization | 身份验证凭证(如 Bearer token ) |
3. 请求体(Body)
- 适用方法:
POST
、PUT
等需要传递数据的方法。 - 常见格式:
- JSON:
{"name": "Alice", "age": 25}
- 表单数据:
name=Alice&age=25
- 文件上传:
multipart/form-data
- JSON:
HTTP 响应报文格式
响应报文由 状态行、响应头、空行、响应体 四部分组成:
HTTP/1.1 200 OK ← 状态行
Server: nginx/1.18 ← 响应头(Headers)
Content-Type: application/json
Content-Length: 25← 空行
{"message": "Success"} ← 响应体(Body)
1. 状态行(Status Line)
- 格式:
<协议版本> <状态码> <状态描述>
HTTP/1.1 404 Not Found
- 常见状态码:
200 OK
:请求成功。301 Moved Permanently
:永久重定向。400 Bad Request
:客户端请求错误。404 Not Found
:资源不存在。500 Internal Server Error
:服务器内部错误。
2. 响应头(Headers)
常用响应头:
Header | 作用 |
---|---|
Content-Type | 响应体的数据类型(如 text/html 、application/json ) |
Content-Length | 响应体的字节数 |
Set-Cookie | 服务器设置客户端的 Cookie |
Cache-Control | 控制缓存行为(如 max-age=3600 ) |
3. 响应体(Body)
- 数据类型:由
Content-Type
决定。- HTML:
<html>...</html>
- JSON:
{"data": [...]}
- 二进制文件:如图片、PDF。
- HTML:
关键参数对比
组成部分 | 请求报文 | 响应报文 |
---|---|---|
起始行 | GET /path HTTP/1.1 | HTTP/1.1 200 OK |
Headers | Host , User-Agent , Content-Type | Content-Type , Set-Cookie |
Body | 可选(POST/PUT 时使用) | 可选(包含返回的数据或错误信息) |
具体示例
在浏览器中搜索,打开F12控制台,这是定位问题十分重要的工具
找到第一个请求文件,主要观察标头和响应
这里有一些具体的示例,将不同的请求放在了同一个页面进行比较,也方便后续翻阅时调用:
前端实战-AJAX-CSDN博客
jQuery中的AJAX
1. 基础语法
$.ajax({url: '请求地址',type: 'GET/POST/PUT/DELETE', // 请求方法data: { key: value }, // 发送的数据(对象或字符串)dataType: 'json', // 预期返回的数据类型(json/xml/text)success: function(response) {// 请求成功时的回调},error: function(xhr, status, error) {// 请求失败时的回调}
});
2. 快捷方法
方法 | 作用 | 示例 |
---|---|---|
$.get() | 发送 GET 请求 | $.get('url', data, callback) |
$.post() | 发送 POST 请求 | $.post('url', data, callback) |
$.getJSON() | 获取 JSON 数据 | $.getJSON('url', callback) |
$.load() | 加载 HTML 片段到元素 | $('#div').load('url #fragment') |
示例:
// GET 请求
$.get('api/data', { id: 1 }, function(response) {console.log(response);
});// POST 请求
$.post('api/save', { name: 'Alice' }, function(response) {alert('保存成功');
});
3. 全局 AJAX 事件
// 请求开始前
$(document).ajaxStart(function() {$('#loading').show();
});// 请求结束后
$(document).ajaxComplete(function() {$('#loading').hide();
});// 全局错误处理
$(document).ajaxError(function(event, xhr, settings, error) {console.error('请求出错:', error);
});
4. 实战示例
示例 1:获取 JSON 数据
$.getJSON('https://api.example.com/users', function(data) {$.each(data, function(index, user) {$('#user-list').append(`<li>${user.name}</li>`);});
});
示例 2:提交表单数据
$('#myForm').submit(function(e) {e.preventDefault();$.post('api/submit', $(this).serialize(), function(response) {$('#result').html(response.message);});
});
示例 3:错误处理
$.ajax({url: 'api/data',dataType: 'json',success: function(data) {console.log(data);},error: function(xhr) {if (xhr.status === 404) {alert('接口不存在');}}
});
5. 核心注意事项
-
跨域问题:
- 如果请求跨域接口,需服务端设置
Access-Control-Allow-Origin
。 - 或使用 JSONP(仅限 GET 请求):
$.ajax({url: 'http://跨域地址',dataType: 'jsonp',success: function(data) { /* ... */ } });
- 如果请求跨域接口,需服务端设置
-
数据格式:
- 发送数据:
data
可以是对象(自动转key=value
)或字符串。 - 接收数据:通过
dataType
指定预期类型(如json
会自动解析)。
- 发送数据:
-
性能优化:
- 对于频繁请求,使用
.abort()
取消未完成的请求:const xhr = $.ajax({ /* ... */ }); xhr.abort(); // 取消请求
- 对于频繁请求,使用
6. 对比原生 AJAX(jQuery 优势)
功能 | 原生 JS 代码量 | jQuery 代码量 |
---|---|---|
发送 GET 请求 | 10+ 行(XMLHttpRequest) | 1 行($.get() ) |
JSON 数据处理 | 手动 JSON.parse() | 自动解析(dataType ) |
错误处理 | 多条件判断 | 统一 error 回调 |
一句话总结
jQuery AJAX 通过 链式调用 和 简化的 API,让异步请求代码减少 70% 以上,尤其适合快速开发和数据驱动的页面交互。
Axios发送AJAX请求
原生 AJAX vs Axios 对比表
特性 | 原生 AJAX (XMLHttpRequest) | Axios |
---|---|---|
语法复杂度 | 冗长 | 简洁 |
浏览器兼容性 | 所有浏览器 | 现代浏览器+Node.js |
Promise 支持 | 需手动封装 | 内置支持 |
请求/响应拦截 | 不支持 | 支持 |
自动JSON转换 | 需手动处理 | 自动处理 |
取消请求 | 较复杂 | 简单易用 |
并发请求 | 需自行实现 | 内置axios.all方法 |
请求进度跟踪 | 支持 | 支持 |
CSRF防护 | 需手动处理 | 内置支持 |
核心注意事项
-
Content-Type 默认值:
- POST默认使用
application/json
- 发送表单数据需显式设置
'Content-Type': 'application/x-www-form-urlencoded'
- POST默认使用
-
错误处理:
- 网络错误会触发
error.request
- 2xx外的状态码会触发
error.response
- 网络错误会触发
-
性能优化:
- 创建实例比修改全局defaults更推荐
- 拦截器中避免阻塞操作
-
安全实践:
- 敏感信息不应放在URL参数中
- 考虑添加请求速率限制
实用示例
基础示例
// GET请求
axios.get('/api/users').then(response => console.log(response.data)).catch(error => console.error('Error:', error));// POST请求
axios.post('/api/users', { name: 'John' }).then(response => console.log('Created:', response.data));
高级配置示例
// 创建自定义实例
const api = axios.create({baseURL: 'https://api.example.com',timeout: 5000,headers: {'Authorization': `Bearer ${token}`,'Content-Type': 'application/json'}
});// 带拦截器的实例
api.interceptors.request.use(config => {config.params = { ...config.params, timestamp: Date.now() };return config;
});api.interceptors.response.use(response => response,error => {if (error.response?.status === 401) {// 处理未授权错误}return Promise.reject(error);}
);
表单提交示例
// URL编码表单
const params = new URLSearchParams();
params.append('username', 'john');
params.append('password', 'secret');axios.post('/login', params, {headers: {'Content-Type': 'application/x-www-form-urlencoded'}
});// FormData表单 (文件上传)
const formData = new FormData();
formData.append('file', fileInput.files[0]);axios.post('/upload', formData, {headers: {'Content-Type': 'multipart/form-data'}
});
错误处理最佳实践
async function fetchData() {try {const response = await axios.get('/api/data');return response.data;} catch (error) {if (error.response) {// 服务器响应错误 (4xx, 5xx)console.error('Server error:', error.response.status);} else if (error.request) {// 无响应 (网络问题)console.error('No response:', error.request);} else {// 配置错误console.error('Setup error:', error.message);}throw error; // 继续向上抛出}
}
相关文章:
前端笔记-AJAX
什么是AJAX? AJAX(Asynchronous JavaScript and XML)就是异步的JS和XML, 是一种无需刷新页面即可与服务器交换数据并更新部分网页内容的技术。它的核心是通过 JavaScript 在后台发送 HTTP 请求,接收服务器返回的…...
单片机可以用来做机器人吗?
不少同学心里都有个疑问:学了单片机到底能不能用来制作机器人呢?答案是毋庸置疑的,能!但具体该如何操作,又得掌握哪些知识呢?今天,咱们就用通俗易懂的话语,详细地为大家一步步剖析清楚。 一、单片机 —— 机器人的 “智慧大脑” 单片机就如同机器人的大脑一般,通过编…...
VS Code + GitHub:高效开发工作流指南
目录 一、安装 & 基本配置 1.下载 VS Code 2.安装推荐插件(打开侧边栏 Extensions) 3.设置中文界面(可选) 二、使用 VS Code 操作 Git/GitHub 1.基本 Git 操作(不输命令行!) 2.连接 GitHub(第一次使用) 三、克隆远程仓库到 VS Code 方法一(推荐): 方…...
Linux系统编程 day7、8 信号(周日划水了)
信号相关概念 信号这章难就难在其抽象。 信号共性:简单、不能携带大量数据、满足条件才发送。 信号的特质:信号是软件层面上的“中断”,一旦信号产生,无论程序执行到什么位置,必须立即停止,处理信号&…...
.NET WPF 三维模型
文章目录 .NET WPF 三维模型1 Viewport3D1.1 3D 坐标系1.2 核心组件1.2.1 相机 (Camera)1.2.2 光源 (Light)1.2.3 3D 模型(Model3D) 1.3 模型纹理(Material)1.4 完整示例:创建坐标轴与立方体1.5 转换模型1.6 性能1.6.1…...
iOS 中的虚拟内存 (理解为什么需要虚拟内存)
什么叫“虚拟地址空间”? 一句话:它是 CPU 看得见、App 以为自己独享,但实际上会被内核和硬件(MMU)动态翻译到真实 物理内存 的一整块“虚拟地图”。 1. 背景:为什么要“虚拟”? 需求虚拟地址空…...
算法之动态规划
动态规划 动态规划1. 核心思想2. 基本步骤3. 关键概念3.1 基本概念3.2 优化技巧 4. 常见应用场景5. 典型案例5.1 斐波那契数列5.2 背包问题5.2.1 0-1背包问题5.2.2 完全背包问题 5.3 最短路径——Floyd算法5.4 最长公共子序列(LCS)5.5 最长递增子序列&am…...
leetcode0130. 被围绕的区域- medium
1 题目:被围绕的区域 官方标定难度:中 给你一个 m x n 的矩阵 board ,由若干字符 ‘X’ 和 ‘O’ 组成,捕获 所有 被围绕的区域: 连接:一个单元格与水平或垂直方向上相邻的单元格连接。 区域:…...
衡石科技ChatBI--飞书数据问答机器人配置详解(附具体操作路径和截图)
先决条件 需要在衡石系统认证方式中配置好飞书认证方式,具体步骤详见认证方式中关于飞书的部分。先完成这部分配置后,再进行以下步骤。 飞书中创建机器人应用 1. 创建飞书应用 在飞书企业自建应用管理中创建应用,设置logoÿ…...
25.解决中医知识问答删除历史对话功能后端处理请求时抛出异常
ChatTest.vue:176 DELETE http://localhost:8080/api/chat/conversations/20 500 (Internal Server Error) deleteConversation ChatTest.vue:176 onClick ChatTest.vue:22 ChatTest.vue:185 删除失败 AxiosError {message: Request failed with status code 500, name: Axio…...
【解决方法】关于解决QGC地面站4.4.3中文BUG,无法标注航点的问题
GC以中文启动时无法标记航点,只有在英文状态下启动然后转换为中文才能标记航点。这个BUG源于中文翻译脚本里面以中文逗号作为多个选项的分隔符,导致编译器认为这个只是一个整体。所以翻译时数量不匹配,导致BUG。 解决方法:将所有…...
Flowith AI,解锁下一代「知识交易市场」
前言 最近几周自媒体号都在疯狂推Manus,看了几篇测评后,突然在某个时间节点,在特工的文章下,发现了很小众的Flowith。 被这段评论给心动到,于是先去注册了下账号。一翻探索过后,发现比我想象中要有趣的多&…...
【AI实战】基于DeepSeek构建个性化AI对话代理:从提示词工程到完整实现
作为开发者,我们经常需要与AI进行各种交互。本文将详细介绍如何通过提示词工程(prompt engineering)构建个性化的AI对话代理,并使用DeepSeek的API实现完整解决方案。 一、个性化AI代理的核心要素 1.1 角色设定(Role Setting) 角色设定是构建个性化AI的…...
基于ueditor编辑器的功能开发之重写ueditor的查找和替换功能,支持滚动定位
百度编辑器的查找和替换无法随着页面滚动定位,找到searchreplace.js,重写里面的方法 效果展示: 20250421173735 思路: 找到查找和替换的输入框,发现id名分别为findtxt和findtxt1,分别绑定change事件&…...
分布式数据库TiDB:架构、核心特性与生产实践(分库分表)
在云计算与大数据时代,传统单机数据库面临三大挑战:海量数据存储、高并发访问和实时分析需求。MySQL分库分表方案复杂、NoSQL缺乏ACID支持、MPP数仓难以处理OLTP... 在这样的背景下,TiDB应运而生。作为一款开源的分布式NewSQL数据库ÿ…...
用自然语言指令构建机器学习可视化编程流程:InstructPipe 的创新探索
想要掌握如何将大模型的力量发挥到极致吗?叶梓老师带您深入了解 Llama Factory —— 一款革命性的大模型微调工具(限时免费)。 1小时实战课程,您将学习到如何轻松上手并有效利用 Llama Factory 来微调您的模型,以发挥其…...
利用WSL2的镜像功能访问Windows下的所有网卡
目录 引言 镜像功能 如何设置 自动代理 结语 引言 我通常用PC上的LAN口去连接开发板,但是在WSL2中要访问LAN口连接的开发板有点麻烦。WSL2默认的网络模式为NAT,如果要访问Windows中网口需要设置桥接,比较繁琐。今天尝试了一下Windows 1…...
AI助理iOS开发:Copilot for Xcode 下载与安装全指南
引言 借助 Copilot for Xcode 也有两年了,如今已经变成了日常开发中的“默契搭档”。它能根据上下文补全代码,快速生成常用逻辑,甚至有时候在我还在思考怎么写的时候,它就已经给出了不错的建议。特别是在写一些重复性较高的代码&…...
Hadoop+Spark 笔记 2025/4/21
定义 1. 大数据(Big Data) - 指传统数据处理工具难以处理的海量、高速、多样的数据集合,通常具备3V特性(Volume体量大、Velocity速度快、Variety多样性)。扩展后还包括Veracity(真实性)和Va…...
模拟车辆变道 python 可视化
目录 车头朝向一起变化 车头朝向不变化,矩形框 车头朝向一起变化 import cv2 import numpy as npdef world_to_pixel(world_x, world_y, img_w=800, img_h=800):scale_x = img_w / 120 # 横向范围:0~120米scale_y = img_h / 80 # 纵向范围:0~80米pixel_x = int(world_x …...
国产仪器进化论:“鲁般号”基于无人机的天线测试系统
2025年4月14日,成都玖锦科技有限公司正式发布了新品:“鲁般号会飞的系统”系列,这是玖锦科技首款基于无人机的天线方向图测试系统。 在“振兴民族产业,打造民族品牌”的征途中,“鲁般号”系列是继“墨子”、“孔明”、…...
Linux学习笔记协议篇(六):SPI FLASH设备驱动
目录 一、设备树解析 二、SPI设备驱动代码分析 1、spi_nor_probe 2、spi_nor_scan (1)协议配置 (2)初始化Flash参数(核心步骤) (3)MTD子系统集成 (3)配置 SPI 通信参数 spi…...
Spring Boot 核心模块全解析:12 个模块详解及作用说明
在当今的微服务与云原生时代,Spring Boot 已成为构建现代 Java 应用的事实标准。它通过“约定优于配置”的理念,大大降低了 Spring 应用的开发门槛,帮助开发者快速启动和部署独立的、生产级别的项目。 本篇文章将系统梳理 Spring Boot 框架中…...
【无人机】无人机方向的设置,PX4飞控方向,QGC中设置飞控的方向/旋转角度。PX4使用手册飞行控制器/传感器方向
目录 #1、基本概念:计算方向 #2、详细步骤:设置方向 #3、微调 默认情况下,飞行控制器(和外部指南针,如果有)应放置在框架顶部朝上,方向应使箭头指向飞机前部。 如果板或外部指南针安装在任何…...
【Spring Boot基础】MyBatis的基础操作:日志、增删查改、列名和属性名匹配 -- 注解实现
MyBatis的基础操作 1.打印日志2. 参数传递2.1不传参2.2 固定参数 3. 增(Insert)3.1 用对象接参3.2 用param注解接收参数3.3 返回主键 4. 删(Delete)4.1 用Integer接参4.2 用对象接参 5. 改(Update)6. 查(Select)6.1 查6.2 拼接SQL语句6.3 列名和属性名匹配6.3.1 起别名 as6.3.2…...
泰迪智能科技大模型应用平台功能特色优势
1.平台概述 大模型应用平台是一款专为高校在大模型应用场景下的教学和科研需求设计的知识库问答系统。平台具备便捷性,支持上传常见格式的数据文件,如txt、doc、pdf、md等,并提供简洁明了的操作配置界面,使用户能够轻松搭建和训练…...
【NLP 69、KG - BERT】
人们总是在无能为力的时候喜欢说顺其自然 —— 25.4.21 一、KG-BERT:基于BERT的知识图谱补全模型 1.模型结构与设计 Ⅰ、核心思想: 将知识图谱中的三元组(头实体-关系-尾实体)转化为文本序列,利用BERT的上下文理解能…...
Spring解决循环依赖
Spring 通过 三级缓存机制 解决循环依赖问题,其核心思想是 提前暴露未完全初始化的 Bean,允许依赖方在 Bean 完全初始化前引用其早期版本。以下是详细解析: 一、三级缓存机制 Spring 在单例 Bean 的创建过程中维护了三级缓存,用于…...
深入解析 Spring 中的 @Value 注解(含源码级剖析 + 自定义实现)
深入解析 Spring 中的 Value 注解(含源码级剖析 自定义实现) 在 Spring 开发中,我们经常使用 Value 注解将配置文件中的值注入到 Bean 的属性中。本文将深入探讨 Value 的使用方式、默认值支持、底层原理以及自定义实现方式。 一、Value 的…...
【Flink SQL实战】 UTC 时区格式的 ISO 时间转东八区时间
文章目录 一、原始数据格式二、解决方案三、其他要求 在实际开发中,我们常常会遇到此类情况:数据源里的时间格式是类似 2025-04-21T09:23:16.025Z 这种带 TimeZone 标识的 ISO 8601 格式,而我们需要在 Flink SQL 中将其转换成北京时间显示。 …...
【论文阅读23】-地下水预测-TCN-LSTM-Attention(2024-11)
这篇论文主要围绕利用深度学习模型检测地下水位异常以识别地震前兆展开。 [1] Chen X, Yang L, Liao X, et al. Groundwater level prediction and earthquake precursor anomaly analysis based on TCN-LSTM-attention network[J]. IEEE Access, 2024, 12: 176696-176718. 期刊…...
/proc/sys/vm/下各参数含义
/proc/sys/vm/下各参数含义 admin_reserve_kbytes如何计算最小有效预留? compact_memorycompaction_proactivenesscompact_unevictable_alloweddirty_background_bytesdirty_background_ratiodirty_bytesdirty_expire_centisecsdirty_ratiodirtytime_expire_seconds…...
算法分析与设计——动态规划复习题(待更新
检测题: 组合优化问题的目标函数通常不包括以下哪种形式? A. 需最小化的代价函数 B. 需最大化的回报函数 C. 需满足的硬约束条件 D. 需最小化的能量函数 答案:C 关于约束条件的说法,以下哪项是正确的? A. 硬约束可以通…...
【EasyPan】项目常见问题解答(自用持续更新中…)
EasyPan 网盘项目介绍 一、项目概述 EasyPan 是一个基于 Vue3 SpringBoot 的网盘系统,支持文件存储、在线预览、分享协作及后台管理,技术栈涵盖主流前后端框架及中间件(MySQL、Redis、FFmpeg)。 二、核心功能模块 用户认证 注册…...
基于Java的不固定长度字符集在指定宽度和自适应模型下图片绘制生成实战
目录 前言 一、需求介绍 1、指定宽度生成 2、指定列自适应生成 二、Java生成实现 1、公共方法 2、指定宽度生成 3、指定列自适应生成 三、总结 前言 在当今数字化与信息化飞速发展的时代,图像的生成与处理技术正日益成为众多领域关注的焦点。从创意设计到数…...
电子电器架构 ---软件定义汽车的电子/电气(E/E)架构
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 周末洗了一个澡,换了一身衣服,出了门却不知道去哪儿,不知道去找谁,漫无目的走着,大概这就是成年人最深的孤独吧! 旧人不知我近况,新人不知我过…...
Stable Diffusion 制作角色三视图
对于漫画创作,DPM 2M Karras和UniPC是高效且稳定的首选采样方法,结合Karras噪声调度可显著提升画面质量。若需进一步优化,可参考具体场景调整步数并辅以ControlNet等工具。避免使用随机性强的采样器(如Euler a)&#x…...
C++--负载均衡在线OJ
这是本人写的第二个项目,相比第一个代码量更少一些,但是此项目涉及linux中的内容更多,同样是干货满满,实现了 类似 leetcode 的题⽬列表在线编程功能,地址仓库:xwy/C学习项目 1. 所用技术与开发环境 C11和…...
【数字图像处理】彩色图像处理(1)
研究彩色图像处理的原因 1:利用颜色信息,可以简化目标物的区分,以及从场景中提取出目标物 2:人眼对颜色非常敏感,可以分辨出来几千种颜色色调和亮度,却只能分别出几十种灰度 彩色图像分类 伪彩色图像处理&…...
【Easylive】consumes = MediaType.MULTIPART_FORM_DATA_VALUE 与 @RequestPart
【Easylive】项目常见问题解答(自用&持续更新中…) 汇总版 consumes MediaType.MULTIPART_FORM_DATA_VALUE 的作用 1. 定义请求的数据格式 • 作用:告诉 Feign 和 HTTP 客户端,这个接口 接收的是 multipart/form-data 格式的…...
【python】copy deepcopy 赋值= 对比
上结论 写法是否独立是否安全修改copy() (用于一维列表)✅ 是独立副本✅ 安全deepcopy() (多层结构时用)✅ 是完全副本✅ 安全直接赋值()❌ 是引用❌ 改一个会影响另一个 一、.copy() 和 deepcopy() 有什…...
环形缓冲区容量耗尽解决方案
以下是针对环形缓冲区在时间窗口统计场景中容量耗尽问题的解决方案设计及优劣分析,结合搜索结果中的技术原理和工程实践: 一、核心问题定位 当环形缓冲区容量耗尽时,新数据覆盖旧数据会导致: 时间窗口统计失真:无法准…...
蓝桥杯 17.发现环
发现环 原题目链接 题目描述 小明的实验室有 N 台电脑,编号 1 ⋯ N。 原本这 N 台电脑之间有 N−1 条数据链接相连,恰好构成一个树形网络。 在树形网络上,任意两台电脑之间有唯一的路径相连。 不过在最近一次维护网络时,管理…...
数据库服务器架构
ORM ORM(Object Relational Mapping):对象与关系数据之间的映射 映射关系表: 类(class)—— 数据库的表(table) 对象(object)——记录(record…...
Netty前置基础知识之BIO、NIO以及AIO理论详细解析和实战案例
前言 Netty是什么? Netty 是一个基于 Java 的 高性能异步事件驱动网络应用框架,主要用于快速开发可维护的协议服务器和客户端。它简化了网络编程的复杂性,特别适合构建需要处理海量并发连接、低延迟和高吞吐量的分布式系统。 1)Netty 是…...
职坐标IT培训:人工智能职业跃迁路径
随着人工智能时代全面来临,职业发展格局正经历颠覆性重构。政策端,《新一代人工智能发展规划》与《生成式AI服务管理办法》双轨并行,既为行业注入动能,也划定了技术应用的合规边界。在此背景下,从业者需构建覆盖基础理…...
Redis 的单线程模型对微服务意味着什么?需要注意哪些潜在瓶颈?
Redis 的单线程模型是其高性能的关键因素之一,但这在微服务场景下既是优势,也可能带来潜在的瓶颈。理解这一点有助于我们在微服务架构中更好的使用Redis。 Redis 单线程模型的核心: 命令处理是单线程的: Redis 使用了一个主线程来接收客户端…...
Redis 有序集合(Sorted Set)
Redis 有序集合(Sorted Set) 以下从基础命令、内部编码和使用场景三个维度对 Redis 有序集合进行详细解析: 一、基础命令 命令时间复杂度命令含义zadd key score member [score member …] O ( k l o g ( n ) ) O(klog(n)) O(klog(n))&…...
C语言中联合体(Union)和结构体(Struct)的嵌套用法
联合体和结构体是C语言中两种重要的复合数据类型,它们可以相互嵌套使用,为复杂数据的表示提供了灵活的方式。 1. 联合体(Union)基础 联合体是一种特殊的数据类型,允许在相同的内存位置存储不同的数据类型。联合体的所有成员共享同一块内存空…...
Rust: 从内存地址信息看内存布局
内存布局其实有几个:address(地址)、size(大小)、alignment(对齐位数,2 的自然数次幂,2,4,8…)。 今天主要从address来看内存的布局。 下面以Str…...