自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(130)
  • 收藏
  • 关注

原创 C#怎么给PDF添加水印_C#如何保护电子文档版权【案例】

2026-05-18 23:00:53 30

原创 C#怎么使用CancellationToken C#如何用取消令牌优雅地取消异步任务和长时间操作【进阶】

2026-05-18 22:59:41 32

原创 Python测试框架如何处理重载_在pytest中使用mocker控制调用

2026-05-18 22:58:30 27

原创 go json反序列化?_?Go语言中JSON反序列化到结构体的Unmarshal方法详解

2026-05-18 22:57:18 22

原创 CSS如何规范化侧边栏的样式实现_基于BEM结构拆分侧边栏模块

侧边栏BEM命名推荐统一用sidebar为block名,如sidebar、sidebar__item;active状态需严格使用sidebar__item--active;隐藏/唤出宜用transform+fixed避免重排。侧边栏容器的BEM命名是否必须用sidebar作为block名不是必须,但sidebar是语义最直接、团队协作中冲突概率最低的选择。用nav容易和全局导航混淆,用aside又和HTML语义标签重复,反而增加理解成本。BEM本身不解决状态管理,只是约定命名,状态逻辑仍需手动控制。

2026-05-18 22:56:05 194

原创 json序列化和反序列化的作用?_?JSON序列化与反序列化在数据交换与持久化中的核心价值

2026-05-17 19:37:58 205

原创 C#怎么给PDF添加水印_C#如何保护电子文档版权【案例】

iTextSharp(5.x 版本)是 C# 里真正能可靠加透明斜体水印的方案,尤其适合批量处理带中文字体的 PDF。iText 的 canvas.SaveState() + canvas.RotateAbsolute() 默认以左下角为原点旋转,文字一转就飞出可视区。Evoker 一站式AI创作平台。

2026-05-17 19:36:52 180

原创 CSS如何给视频控制条自定义_通过---webkit-media-controls系列伪元素

唯一可控方案是禁用原生控件并手动实现HTML+CSS+JS自定义控制条。因为这套伪元素只在旧版 Chrome(≤68)和早期 Safari 中有效,现代 Chromium 内核(包括 Edge、新版 Chrome、Opera)已彻底移除支持,::-webkit-media-controls 现在是“写上去就失效”的典型。真正能动手改控制条样式的唯一路径:用controlsList + 自定义控件原生 <video> 的控制条不可样式化,唯一可控方案是关掉默认控件,自己用 HTML+CSS+JS 实现。

2026-05-17 19:35:47 190

原创 Golang如何做API网关_Golang API网关教程【必看】

后端服务收不到完整路径、拿不到真实 IP、甚至因 Host 不匹配拒绝请求,全是这个原因。必须显式设置 req.URL.Scheme 和 req.URL.Host,否则可能走 HTTPS 却连 HTTP 后端req.URL.Path 要用 strings.TrimPrefix(req.URL.Path, "/api/v1") 截掉网关层前缀,再交给后端;它也不支持路径参数、方法限定、子路由隔离,所有逻辑最后都挤进 if 判断里,两周后没人敢动。

2026-05-17 19:34:41 168

原创 SQL处理JOIN查询结果集过大的策略_分页查询与限制返回列

本文介绍如何在 php 中读取 csv 文件,精准定位目标日期所在行,并安全提取其前 n 行和后 n 行的对应字段(如日期),避免因行号越界或文件未完全加载导致的逻辑错误。本文介绍如何在 php 中读取 csv 文件,精准定位目标日期所在行,并安全提取其前 n 行和后 n 行的对应字段(如日期),避免因行号越界或文件未完全加载导致的逻辑错误。由于 PHP 的 fgetcsv() 是流式读取、不可回溯,无法在单次遍历中直接访问“尚未读到”或“已跳过”的行。

2026-05-17 19:33:37 182

原创 实现一个可精确定位、支持左右移动与删除的文本光标系统

本文介绍如何利用原生 <input> 元素的 setSelectionRange() API 构建专业级文本光标交互逻辑,替代手动 DOM 操作与绝对定位光标,实现字符级光标悬停、左右跳转及精准删除功能。本文介绍如何利用原生 `` 元素的 `setselectionrange()` api 构建专业级文本光标交互逻辑,替代手动 dom 操作与绝对定位光标,实现字符级光标悬停、左右跳转及精准删除功能。按下 Delete 键时,仅删除光标当前“悬停”的单个字符(即光标位置处的字符,而非选中区域或末尾字符)。

2026-05-16 00:21:59 41

原创 宝塔面板安装后无法访问8888端口_配置防火墙与安全组规则

宝塔实际监听端口需通过cat /www/server/panel/data/port.pl确认,而非默认8888;须同步检查本地防火墙(firewalld/ufw)和云平台安全组入方向规则,并用telnet或nc验证端口连通性。确认宝塔实际监听端口是不是8888很多人一上来就猛改防火墙,结果发现面板压根没在 8888 上监听——它可能被安装脚本随机改了,也可能初始化失败后 fallback 到别的端口。只开安全组、不开本地防火墙,照样连不上。哪怕你本地防火墙全放开,安全组没配,请求根本进不来。

2026-05-16 00:20:50 43

原创 如何将SQL查询结果导出为CSV:SELECT INTO OUTFILE方法

查当前允许路径,返回 NULL 表示完全禁用GRANT FILE ON *.* TO 'your_user'@'%';授予权限(需 SUPER 或 GLOBAL 权限用户操作)修改 my.cnf 中的 secure_file_priv 值后必须重启 MySQL导出路径必须是绝对路径,且 MySQL 进程要有写权限(注意 SELinux 或容器挂载限制)INTO OUTFILE 的字段分隔与换行必须手动指定它不会自动加 CSV 头、不转义双引号、不处理换行符——导出后 Excel 打开可能错列或断行。

2026-05-16 00:19:41 166

原创 Go语言怎么写Readme_Go语言项目文档编写教程【速学】

</div><div id="productList">

2026-05-16 00:18:32 42

原创 C#怎么实现数据校验验证 C#如何用DataAnnotations和FluentValidation校验输入数据【框架】

常见现象是加了 [Required] 却不报错,提交照样通过。),对 int、DateTime 这类非空值类型无效(它们总有默认值)如果用了自定义构造函数或私有 setter,确保属性有 public getter,否则 ValidationAttribute 读不到值Web API 中需确认控制器继承 ControllerBase 且启用了模型验证(默认开启,但若手动调用 TryValidateModel 必须传入实例)FluentValidation 怎么替换掉 DataAnnotations?

2026-05-16 00:17:21 240

原创 CSS中如何让浮动元素撑开父容器_深度解析清除浮动

2026-05-15 22:52:39 28

原创 Go 中使用 go-json-rest 时调用 Write 方法的正确方式

rest.ResponseWriter 是 go-json-rest 对标准 net/http.ResponseWriter 的封装接口,其设计目标是增强 REST 语义支持(如内置 WriteJson、EncodeJson、WriteHeader 等方法),但刻意未直接暴露底层 http.ResponseWriter 的 Write([]byte) 和 WriteString(string) 等原始写入方法。若需底层字节流控制(例如写入自定义二进制内容、流式响应或兼容遗留逻辑),则必须显式进行类型断言。

2026-05-15 22:51:27 146

原创 如何用SQL统计每组的平均值同时显示原行_OVER子句

2026-05-15 22:50:17 169

原创 MySQL主从复制如何实现读写分离_利用ProxySQL进行流量分发

ProxySQL 启动后连不上 MySQL 主从集群,需检查 mysql_servers 表的 hostgroup_id(主库设为0、从库设为1)、status(均为'ONLINE')、weight、max_replication_lag 及 monitor 用户权限,并执行 LOAD/SAVE 操作生效配置。检查 mysql_servers 表的 hostgroup_id 和状态ProxySQL 不会自动识别主从角色,它只按你配置的 hostgroup_id 分发流量。

2026-05-15 22:49:05 176

原创 HTML怎么创建颜色预设_HTML datalist提供色值选项【介绍】

语法:arr.flat([depth]),depth 默认为 1,即只展开一层;[1, [2, 3], [4, [5]]].flat() → [1, 2, 3, 4, [5]](只展一层)[1, [2, 3], [4, [5]]].flat(2) → [1, 2, 3, 4, 5](展两层)[1, [2, [3, [4]]]].flat(Infinity) → [1, 2, 3, 4]注意:flat() 会跳过空槽(empty slots),比如 [1, , 3].flat() 得到 [1, 3];

2026-05-15 22:47:51 40

原创 如何在 CSS 中实现元素的绝对定位,使其不受窗口尺寸变化影响

本文详解如何通过 position: absolute 结合相对单位(如 %、vh/vw)和合理的父容器定位上下文,实现元素在任意屏幕尺寸下保持稳定位置,避免因分辨率或全屏切换导致布局偏移。/* 宽度为父容器的 40% */ height: 60%;/* 高度为父容器的 60% */ padding: 3% 0 6% 0;top/left/width/height 均采用 % 单位,其计算基准是父容器 .main 的尺寸(而 .main 自身已设为 100vh/100%),从而形成链式响应;

2026-05-13 20:05:35 170

原创 Layui表格如何监听单元格编辑开始(进入编辑状态)事件

用 on('click', '.layui-table-body td[lay-event="*"]', ...) 拦截双击行为Layui 表格的单元格编辑靠的是双击触发,底层会往对应 td 里插入 input 或 select。// 非数据列,比如操作列 // 此时可确认用户正要编辑该单元格 console.log('开始编辑:行', index, '列字段', field);

2026-05-13 20:04:21 190

原创 Go语言GORM怎么做分页_Go语言GORM分页查询教程【实用】

分页必须用 Limit 和 Offset,GORM 无原生 Paginate;Offset 表示跳过条数,须在 Limit 前调用;分页必须用 Limit 和 Offset,别信“自动分页”封装GORM 本身不提供 Paginate 这类开箱即用的分页方法(v2 仍无原生支持),所谓“自动分页”基本是第三方库或自己写的封装。Mokker AI AI产品图添加背景。

2026-05-13 20:03:07 231

原创 SQL在报表统计中优化JOIN查询_预聚合数据减少实时JOIN

应按GROUP BY和聚合字段建轻量预聚合表,避免高基数字段,用COALESCE补零、增量更新及严格对齐业务逻辑。报表导出超时但单表查询飞快。别指望加索引能解决所有问题——JOIN字段有索引,但WHERE条件没走索引,照样全表扫报表场景通常读多写少,实时性要求不高(比如T+1),没必要硬扛复杂JOIN预聚合不是“提前算好所有组合”,而是按报表维度+指标,建轻量级汇总表怎么建预聚合表才不白干关键看报表SQL的GROUP BY字段和SUM/AVG/COUNT目标列——这些就是预聚合表的主干。

2026-05-13 20:01:52 235

原创 JavaScript数组扁平化flat与flatMap处理嵌套数据

语法:arr.flat([depth]),depth 默认为 1,即只展开一层;[1, [2, 3], [4, [5]]].flat() → [1, 2, 3, 4, [5]](只展一层)[1, [2, 3], [4, [5]]].flat(2) → [1, 2, 3, 4, 5](展两层)[1, [2, [3, [4]]]].flat(Infinity) → [1, 2, 3, 4]注意:flat() 会跳过空槽(empty slots),比如 [1, , 3].flat() 得到 [1, 3];

2026-05-13 20:00:37 167

原创 CSS如何修改Bootstrap分页条样式_自定义分页项的背景色与边框.txt

更可控的做法是:把变量注入到组件作用域内,而非依赖外部定义:组件 .less 文件顶部用 @import (reference) 引入基础变量,它不会输出 CSS,只供计算使用关键尺寸、颜色等通过参数化 mixin 定义,比如 .btn-style(@bg: @primary-color, @radius: 4px),调用时显式传参避免在组件中重新赋值全局变量(如 @primary-color: red;),这会影响后续所有导入它的文件这样改一个组件的配色,不会导致导航栏按钮也跟着变。

2026-05-11 21:32:35 173

原创 golang如何优化GORM查询性能_golang GORM查询性能优化方法

Preload需精简字段防N+1;ORDER BY id LIMIT N,性能稳定不衰减必须保证主键是单调递增且无空洞(比如 UUID 或软删除 ID 就不行),否则会漏数据批次大小别设太小(如 10)或太大(如 10000):50–500 是较稳妥区间,视单条记录体积调整别在循环里做耗时操作(如 HTTP 请求、文件写入),否则拖慢整个批次节奏,考虑用 goroutine 异步处理Select 字段和 QueryFields 模式,少查一个字段就少一分风险SELECT * 在 Go 里不是懒,是危险。

2026-05-11 21:31:22 211

原创 TensorFlow中如何冻结模型层_设置layer.trainable等于False实现微调

2026-05-11 21:30:10 239

原创 CSS如何处理SSR中CSS引入_在服务端渲染时提取关键CSS

需用mini-css-extract-plugin(Webpack)或vite-plugin-css-injected-by-js(Vite)配合服务端收集并注入CSS字符串到HTML的<head>中。服务端渲染时import的CSS为什么没进HTMLSSR中直接import './style.css',生成的HTML里没有内联样式——不是漏了,是Webpack/Vite默认不提取。现代打包器把CSS当模块处理,import只是触发加载逻辑,服务端执行时没走CSS提取流程,自然不会塞进<style>标签。

2026-05-11 21:28:57 38

原创 CSS如何利用Sass实现透明度动态化_通过函数计算CSS颜色值

2026-05-11 21:27:42 28

原创 Layui表格怎么实现点击某一行的任意位置即选中复选框

因为 table.render() 是异步渲染,tbody 内容初始为空,直接查 .layui-table-body 下的 tr 会找不到节点。或者用 table.cache[tableId][index]如果用了 id 字段作为唯一标识,更稳妥:先用 $(tr).data('id') 取 id,再遍历 table.cache[tableId] 匹配点击区域排除表头、操作列、复选框本身用户点表头、点“操作”按钮、点已有的复选框时,不该再触发二次选中,否则逻辑错乱。需要过滤掉这些区域。

2026-05-08 21:41:39 212

原创 MySQL主从同步跳过错误影响一致性_使用pt-table-sync修复

基本命令:pt-table-sync --sync-to-master h=从库IP,u=用户,p=密码,D=库名,t=表名 --print 先看要执行哪些 SQL必须加 --sync-to-master,否则默认以第一个实例为基准(容易搞反方向)大表慎用:pt-table-sync 会分块 SELECT 比对,但单次锁行+网络传输仍可能拖慢从库,建议避开业务高峰遇到无主键表?比如主库某行被 DELETE,从库还存在——REPLACE INTO 无法感知该行该删,只会尝试插入(失败)或更新(无意义)。

2026-05-08 21:40:25 150

原创 将 Go 语言中 map 的字符串值批量转换为 float64 类型

2026-05-08 21:39:11 29

原创 Python如何构建异步消息队列_利用asyncio配合Redis实现任务分发

这不是 asyncio 不支持 Redis,而是 redis-py 默认没走异步路径。实操建议:立即学习“Python免费学习笔记(深入)”;await pipe.execute()如果任务来自 HTTP 请求体,优先在业务层做简单合并(比如每 10 条攒一次),而不是无脑单条 push注意 pipeline.execute() 是原子的,但失败时整个 batch 回滚,需按需加重试逻辑消费者用 brpoplpush 实现“带确认”的可靠消费纯 lpop 拿到任务后如果 worker 崩溃,任务就丢了;

2026-05-08 21:37:57 192

原创 C#怎么获取当前月份的天数_C#如何调用DateTime静态方法【技巧】

DateTime.DaysInMonth(2024, 2) → 返回 29(闰年)DateTime.DaysInMonth(2023, 2) → 返回 28DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month) → 安全获取当前月天数月份参数必须在 1–12 范围内,否则抛异常DateTime.DaysInMonth() 对参数极其严格:年份可以很大(比如 9999),但月份必须是 1 到 12 的整数。

2026-05-08 21:36:43 182

原创 CSS旋转效果在Edge旧版支持_添加-ms-transform前缀与过渡

本文教你如何将 random.randint(100, 999) 生成的三位整数拆解为各位数字,高效判断是否存在重复数字(如 112、333),并量化重复程度(双重复/三重复),从而为游戏逻辑提供可编程的胜率倍数变量。本文教你如何将 random.randint(100, 999) 生成的三位整数拆解为各位数字,高效判断是否存在重复数字(如 112、333),并量化重复程度(双重复/三重复),从而为游戏逻辑提供可编程的胜率倍数变量。

2026-05-07 22:05:31 180

原创 c++如何实现基于流缓冲区派生类的高级虚流映射技术【进阶】

/ os 持有悬垂指针} // buf 析构 → os 后续所有操作 UB正确做法只有两种:- 缓冲区对象生命周期 ≥ 流对象:全局/静态变量、堆分配(用智能指针托管)- 在流对象作用域内严格控制缓冲区生存期,例如封装成 RAII 类,构造时 new,析构时 delete(不推荐裸 new)- 更安全的是用 std::unique_ptr<MyStreamBuf> 管理,并在流构造后用 rdbuf() 替换(注意旧 buffer 需手动清理)另一个隐形问题:多个流共享同一 streambuf 实例。

2026-05-07 22:03:47 201

原创 如何在 Supabase 中安全实现用户“鼓掌”计数功能

在基于 Supabase 构建的互动应用(如线上剧场)中,“虚拟鼓掌”看似简单,实则暗藏安全风险:若仅依赖客户端发起 UPDATE 请求并配合宽松的 RLS(如 auth.role() = 'authenticated'),攻击者可通过浏览器控制台或 Postman 复用有效 JWT 和 API Key,反复提交请求,轻松刷高计数——这本质上是将业务逻辑(“一人一拍”“限频防刷”)错误地交由不可信的前端执行。

2026-05-07 22:02:07 224

原创 如何批量修改SQL表注释_使用ALTER TABLE语句批量更新

MySQL不支持单条ALTER TABLE批量修改多表注释,必须逐表执行ALTER TABLE ... COMMENT语句;必须逐表执行,不能靠语法糖“一次写完”表名需明确列出,或通过查询 information_schema.tables 动态获取如果表名含特殊字符(如横线、空格),记得用反引号包裹:`my-table`用 SELECT CONCAT() 自动生成批量修改语句最常用、最可控的方式:查出目标表名,拼出对应的 ALTER TABLE 语句,复制执行或导出为 SQL 文件运行。

2026-05-07 22:00:20 179

原创 golang如何实现短链接生成服务_golang短链接生成服务实现实践

短链接生成的核心逻辑是随机映射+数据库去重校验。跳转走302,路由通配,DB建唯一索引,开发用SQLite+Redis,压测P99<5ms。,重复则重试(建议上限 3 次,超时就报错)别用 uuid.NewString() —— 太长,且带连字符,不适合做路径段如果并发高,单靠应用层重试容易雪崩,可配合 Redis 的 SETNX 做原子预占(SETNX short:abc123 "pending")数据库设计要支持快速跳转和防刷跳转性能取决于能否单次索引查询完成,所以 short 字段必须建唯一索引;

2026-05-07 21:58:34 230

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除