自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 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-11 21:32:50 83

原创 PHP怎么使用Eloquent Attribute Synthesis属性合成_Laravel多源数据融合【指南】

所谓“多源数据融合”,实际是开发者对 accessor、mutator、getAttributes()、toArray()、append 等能力的组合误读或自行封装。你需要手动干预访问逻辑:用 getFullNameAttribute() accessor 做逻辑编排:先查缓存,再 fallback 到 $this->first_name . ' ' . $this->last_name,最后兜底到配置默认值避免在 accessor 里做阻塞式远程调用(如 HTTP 请求),否则列表页会卡死;

2026-05-11 21:31:37 62

原创 Golang怎么安全关闭channel_Golang channel关闭教程【通俗】

接收方永远别碰 close(),否则编译失败或运行时 panic。这意味着:如果你函数参数是 ch ,<code>close(ch) 直接报错:invalid operation: close(ch) (cannot close receive-only channel)真正能关 channel 的,是那个创建它、还握着双向或只写类型变量的 goroutine常见错误:把 channel 封装进结构体后暴露 Close() 方法,却没检查内部是否已是只读类型为什么重复 close() 会 panic?

2026-05-11 21:30:25 207

原创 SQL优化多表关联中的字符串连接字段_建立前缀索引提升JOIN

复合索引顺序、字符集一致性、在线加索引的资源争抢及数据增长后前缀长度失效均需关注。,结果 > 0.95 才值得避免用 (255) 直接截全字段——MySQL 5.7+ 对前缀索引长度有限制(InnoDB 单列前缀最多767字节,utf8mb4 下约191字符)复合索引里含前缀字段时,顺序很重要:(status, code(4)) 在 WHERE status=1 AND code='ABCD123' 场景下才生效前缀索引导致 ORDER BY 或 GROUP BY 失效怎么办?

2026-05-11 21:29:13 64

原创 JavaScript中Nodejs环境内存限制与V8堆大小调整

运行时可通过以下方式获取实时内存信息:process.memoryUsage():返回对象包含 heapTotal(已申请堆空间)、heapUsed(实际使用)、external(绑定 C++ 对象占用的外部内存)等字段process.memoryUsage().heapUsed / process.memoryUsage().heapTotal 可粗略计算堆使用率搭配 --trace-gc --trace-gc-verbose 启动可输出每次 GC 的详细日志(适合调试)如何调整 V8 堆内存上限?

2026-05-11 21:27:59 109

原创 uni-app怎么实现视频弹幕 uni-app视频组件叠加弹幕功能【实战】

uni-app 的 video 是原生组件,iOS 和 Android 都默认置顶,z-index 对它完全无效——哪怕你给弹幕层设成 99999,也盖不住。弹幕出屏后立即回收坐标和文本引用,防止内存持续增长关键配置示例:<video src="xxx.mp4" id="myVideo"></video><cover-view class="danmu-layer"> <canvas type="2d" canvas-id="danmuCanvas" style="width:100%;

2026-05-08 21:41:55 131

原创 Bootstrap中常用的文本颜色、背景颜色及边框色类

fieldnames 和 lineterminator 应统一维护(如常量或配置类),避免散落在各处;若需支持不同 CSV 配置(如分隔符、编码),可将 make_csv_writer 升级为带参数的工厂函数,例如 make_csv_writer(file_obj, delimiter=';推荐方案:配置封装 + 上下文管理器import csv# 全局或模块级定义字段名与通用参数FIELDNAMES = ['name', 'age', 'city']LINETERMINATOR = '

2026-05-08 21:40:41 188

原创 html怎么用inert属性禁用_HTML如何通过Inert暂停交互区域

inert 属性能真正让元素及其子树“消失”在交互和可访问性树中——不是靠 disabled(只对表单控件有效),也不是靠 pointer-events: none(仍能被键盘聚焦、屏幕阅读器读取),而是浏览器原生的、语义化的暂停机制。inert 属性生效的前提条件它只在现代浏览器中可用(Chrome 111+、Firefox 121+、Safari 18.0+),旧版 Safari 和 Edge 旧内核完全不支持,且没有 polyfill 能完美模拟其行为。立即学习“前端免费学习笔记(深入)”;

2026-05-08 21:39:27 204

原创 如何用 stopPropagation 阻止事件冒泡防止触发父级回调

stopPropagation()用于阻止事件冒泡,需在子元素事件处理函数中调用;它只阻断传播路径,不影响默认行为,与preventDefault()功能不同。用 stopPropagation() 阻止事件冒泡,核心是在子元素的事件处理函数中调用它,让事件不再向父级 DOM 逐层上传。和 preventDefault 的区别别搞混stopPropagation() 只影响事件传播路径(不往上走),不影响默认行为;preventDefault() 只取消默认动作(如链接跳转、表单提交),不阻止冒泡。

2026-05-08 21:38:13 178

原创 Go语言如何做IP白名单_Go语言IP白名单过滤教程【干货】

推荐方案:预解析 + net.IPNet.Contains,把白名单字符串提前转成 *net.IPNet 切片,运行时只做 O(n) 次 Contains 调用(n 是白名单条目数,通常很小)。失败则 fallback 到 net.ParseIP 并构造 /32 或 /128 子网注意 net.ParseIP("127.0.0.1").To4() 返回非 nil 才算 IPv4,否则可能是 IPv6 映射地址,误判会导致放行失败HTTP 中间件里获取真实客户端 IP 的坑直接读 r.RemoteAddr?

2026-05-08 21:36:59 239

原创 如何在Bootstrap中实现响应式的统计数据卡片

Bootstrap响应式卡片需用row+col包裹card实现,如col-12(超小屏一列)、col-md-6(中屏两列)、col-lg-3(大屏四列),依赖栅格系统而非card自身响应。用 card + row + col 组合实现基础响应式卡片布局Bootstrap 的响应式卡片本质是靠栅格系统撑起来的,不是靠 card 自己“变”。Bootstrap 5.3+ 提供了 fw-bold + fs-1 到 fs-6 的响应式字号类,但它们只对断点生效,不自动缩放。

2026-05-07 22:06:14 193

原创 解决Navicat多图纸模型工作区协同报错怎么办_外键关联与语法解析

Navicat多图纸模型外键连不上根本原因是元数据不同步且跨图纸不自动关联。需刷新表结构、启用Information Schema模式、正向拖拽主键列、勾选导出外键选项、避免二进制文件协作,并确保服务端支持外键解析。Navicat 多图纸模型里外键连不上,提示 Cannot resolve column根本原因是 navicat 的「多图纸模型」不自动同步字段元数据——它把每张图当独立画布,即使表名一样,字段定义没显式刷新,外键拖拽时就找不到目标列。

2026-05-07 22:04:29 131

原创 Redis怎样优化大量Lua并发调用带来的CPU压力

2026-05-07 22:02:47 203

原创 CSS如何处理层级混乱问题_利用z-index与Stacking Context原理

opacity、transform等属性会触发该context,需用开发者工具检查并调整层级策略。常见错误现象:两个 position: absolute 元素,一个 z-index: 100,另一个 z-index: 1,但后者反而盖在上面 —— 很可能前者父容器是普通 div(无 stacking context),后者父容器有 opacity: 0.99(创建了新 stacking context),而这个容器本身的 z-index 是 10,高于前者所在 context 的默认层(0)。

2026-05-07 22:01:00 198

原创 SQL视图占空间吗_理解视图定义与存储机制的底层逻辑

SQL视图真的不占磁盘空间吗不占——但得加个前提:标准视图(CREATE VIEW)本身只在数据字典里存一条文本记录,通常是几十到几百字节,相当于“记个便签”,不是“拷一份数据”。不行,标准视图不支持索引(除非用物化视图或 SQL Server 的索引视图);真占空间的,是带物理落地行为的变体:SQL Server 的 INDEXED VIEW(也叫“物化视图”):一旦你在视图上建了唯一聚集索引,SQL Server 就会把结果集实际写入磁盘,和表一样占空间,且维护成本高(插入/更新基表时要同步刷新);

2026-05-07 21:59:13 180

原创 CSS如何解决CSS冲突导致的BUG_使用CSS层叠层特性隔离样式

CSS层叠层(@layer)通过分组命名和显式排序解决多来源样式冲突,使开发者可控层叠优先级,避免滥用!什么是CSS层叠层(@layer)能解决的冲突当多个CSS来源(比如框架样式、组件库、自定义主题、内联样式)同时作用于同一个元素,浏览器靠层叠顺序(cascade origin + specificity + order)决定最终样式——但这个顺序难预测、难调试。@layer不是覆盖或重写规则,而是给CSS规则“分组命名+显式排序”,让开发者掌控层叠优先级,而不是靠拼命加!

2026-05-06 20:33:17 159

原创 如何处理RAC节点间时间差超过容忍度_节点驱逐保护机制与时间强同步

超过这个值,它就自动放弃,转为 observer如果两个节点分别用 date -s 调整,哪怕只差几百毫秒,也可能导致 voting disk 写入冲突,引发 OCR 损坏风险chrony 迭代同步比 ntpd 更适合 RACRocky Linux 9 默认用 chrony 不是偶然——它对大偏差(>1 秒)支持渐进式 slewing(平滑调整),而传统 ntpd 在偏差 >1000 秒时默认拒绝同步,必须加 -g 参数强制,这又带来跳变风险。RAC 要的不是“快”,而是“稳”和“可预期”。

2026-05-06 20:31:33 174

原创 HTML图片怎么用Bitbucket Pipelines发布_Bitbucket自动构建HTML站点

路径前缀是否一致在 index.html 的 <head> 里加 <base href="/repo/">(替换成你实际的子路径)构建工具如 vite 或 vuepress 要显式配置 base: "/repo/",否则生成的 JS/CSS 路径仍是相对根目录Pipelines 默认工作目录是仓库根,确保 cp -r 拷的是构建产物目录,不是源码目录能不能跳过 GitHub,直接用 Pipelines rsync 到自己服务器可以,但得自己管好 SSH 认证和权限。

2026-05-01 20:42:09 190

原创 如何规避SQL存储过程注入_严格清洗变量并使用预处理

哪怕加了 REPLACE(@input, '''', '''''') 这种“手动转义”,也挡不住绕过——比如用注释符 -- 截断后续校验逻辑,或用 CHAR(0x27) 绕过单引号检测。sp_executesql 是唯一安全入口表名、列名等无法参数化的部分,只能白名单校验(如 CASE WHEN @col IN ('name', 'email') THEN @col ELSE THROW 50000, 'Invalid column', 1 END)如何用 sp_executesql 正确传递参数?

2026-05-01 20:40:25 41

原创 Go语言怎么用依赖注入_Go语言依赖注入DI教程【简明】

依赖注入不是“用框架才叫DI”Go 里写 NewUserService(logger, repo) 就是依赖注入——只要依赖由外部传入,不自己 new,就满足 DI 的本质。检查每个构造函数是否只依赖接口(如 Logger),而非具体类型(如 *zap.Logger)把配置项(timeout、workers)和核心依赖(db、cache)分开传,避免构造函数膨胀如果某个服务要同时用 *sql.DB 和 redis.Client,别硬塞进一个 NewService();

2026-04-29 23:32:49 30

原创 golang如何实现HSTS安全头配置_golang HSTS安全头配置实现实践

Go HTTP Server 默认不设置 HSTS 头,需手动在 handler 开头通过 w.Header().Set() 注入,推荐中间件统一处理,并确保重定向响应也携带该头。Go HTTP Server 默认不设置 HSTS 头Go 的 http.Server 不会自动添加 Strict-Transport-Security 响应头,哪怕你用 HTTPS 反向代理或 TLS 直连。这不是 bug,是设计取舍:Go 标准库坚持“显式优于隐式”。

2026-04-29 23:31:12 17

原创 企业级SQL注入防护手段_使用专用的数据库安全网关

和WHERE id = 1 OR 1=1,哪怕后者藏在Base64里或经过多层注释包裹不支持AST解析的网关,在MySQL 8.0+的CTE递归查询、PostgreSQL的WITH RECURSIVE等复杂语法面前基本失效部署位置决定能否拦住所有流量,别让网关变成摆设如果网关只串在应用服务器和主库之间,但应用还直连从库做报表查询、或者DBA用mysql -h命令行直连、甚至有ETL工具绕过连接池——那网关就只覆盖了不到40%的SQL路径。

2026-04-28 22:19:04 239

原创 如何用 objectStore.add 向本地数据库插入一条新记录

使用 objectStore.add() 插入新记录需确保数据库已打开、事务为 readwrite 模式、正确获取 objectStore,并传入符合键路径(keyPath)、自增(autoIncrement)或显式键要求的数据;成功返回主键,冲突触发 ConstraintError。使用 objectStore.add() 向 IndexedDB 的 object store 插入新记录,核心是确保数据库已打开、事务已启动、object store 已正确获取,并传入符合键路径要求的数据对象。

2026-04-28 22:17:30 147

原创 如何用 removeChild 与 remove 方法从页面 DOM 中移除元素

2026-04-27 21:25:28 214

原创 CSS如何实现移动端文字转阴影效果_通过text-stroke模拟描边

webkit-text-stroke 是真正的文字描边属性,支持颜色与粗细,渲染干净但仅 WebKit/Blink 内核支持,需用 text-shadow 降级;text-stroke 不是阴影,但能“假装”描边用 text-shadow 做描边效果不靠谱——它本质是模糊投影,放大后毛边明显,且无法控制内外边距。而 -webkit-text-stroke 是真正的描边属性,支持颜色+粗细,渲染干净,适合标题、Logo 文字等需要强轮廓的场景。正确顺序是让现代浏览器用描边,老浏览器/FF 用阴影兜底。

2026-04-27 21:23:59 169

原创 golang如何实现可靠消息最终一致_golang可靠消息最终一致实现实战

2026-04-26 19:18:39 187

原创 告别重复编码-Symfony自动化开发指南

2026-04-26 19:17:08 163

原创 json object反序列化?_?JSON Object反序列化为Java对象的Jackson与Gson实现对比

2026-04-25 22:02:29 189

原创 CSS Grid布局如何解决grid间距无法设置问题_利用gap属性替代margin

gap比margin更合适解决Grid间距问题,因gap是Grid原生属性,仅作用于网格线间、不干扰轨道定义、不继承不折叠;gap只对直接子元素生效,不继承、不传播,行为可预测设置gap: 10px等价于同时设row-gap: 10px和column-gap: 10px,写法更紧凑IE完全不支持gap(包括row-gap/column-gap),需要降级方案时不能只靠它gap在不同浏览器中的兼容性表现Chrome 66+、Firefox 63+、Safari 14.1+ 原生支持gap;

2026-04-25 22:01:01 171

原创 Golang怎么用sqlc从SQL生成类型安全代码_Golang如何根据SQL语句自动生成Go查询函数【教程】

2026-04-24 23:31:15 184

原创 如何实现游标变量_REF CURSOR与SYS_REFCURSOR动态返回

2026-04-24 23:29:50 161

原创 MySQL在云环境如何选择存储类型_SSD与高性能云盘配置建议

高性能云盘提供稳定IOPS基线与突发能力,而SSD云盘IOPS波动大、延迟不可控。SSD 云盘(如 3000 IOPS 保障)则对应调低到 2500 / 5000innodb_flush_method 必须为 O_DIRECT(云环境尤其重要),否则 OS 缓存和 InnoDB 缓存双层缓存反而增加延迟,还可能引发写放大别碰 innodb_doublewrite 关闭选项——云盘故障率虽低,但 doublewrite 是崩溃恢复唯一可靠保障,关了等于裸奔为什么有些团队上了 SSD 云盘反而更慢?

2026-04-22 19:53:05 162

原创 CSS如何实现列表项序号自定义_利用--before与content实现

2026-04-22 19:51:42 149

原创 如何实现SQL存储过程动态排序_配合参数过滤与排序逻辑

更稳妥的是用 OR 配合 IS NULL 判断,让优化器有机会走索引 Seek,尤其当 @status 有值时:WHERE (@status IS NULL OR status = @status) AND (@category IS NULL OR category = @category)注意:多个 OR 条件叠加后,执行计划可能退化成 Scan,如果过滤字段区分度低(比如 status 只有 3 个值),建议加 OPTION (RECOMPILE) 让每次执行都重生成计划。

2026-04-21 23:05:50 203

原创 uni-app怎么实现类似于B站的视频弹幕效果 uni-app弹幕轨迹算法实现【实战】

uni-app弹幕卡顿主因是跨平台canvas限制:非H5端不支持requestAnimationFrame和DOM操作,需预计算坐标、限并发数≤30、用drawImage替代fillText;因为 uni-app 的 canvas 在非 H5 平台(尤其是小程序和 App)上不支持原生 DOM 操作,也不能直接用 requestAnimationFrame 做高帧率动画;B站式弹幕不是纯水平移动,而是带轻微 Y 轴偏移的“抖动轨迹”,算法本质是给每个弹幕绑定一个独立的 y(t) 函数,而非全局统一路径。

2026-04-21 23:04:24 212

原创 c++怎么实现一个支持多线程写、单线程读的环形日志缓冲区【进阶】

必须用原子变量管理 write_index 和 read_index,且用 memory_order_acquire/release 配对,避免编译器/CPU 重排导致读到未写完的数据缓冲区容量必须是 2 的幂次(如 1024、4096),才能用位运算替代取模,避免除法开销和分支预测失败每个日志项需自带长度字段或使用定长结构,否则读线程无法判断一条日志是否完整写入怎么用 std::atomic + 位运算实现无锁写入逻辑核心是让每个写线程通过 fetch_add 竞争获取一段连续索引,再填充数据。

2026-04-20 21:31:38 231

原创 CSS如何高效引入样式表_对比link标签与import指令的性能差异

link 标签加载 CSS 并行高效,@import 串行阻塞渲染;link 标签加载 CSS 是并行的,@import 是串行阻塞的浏览器解析 HTML 时,遇到 <link rel="stylesheet"> 会立即发起网络请求,并且多个 <link> 之间默认并行下载;典型误用:@import url("mobile.css") screen and (max-width: 768px) —— 这句语法无效,@import 后的媒体查询只在 CSS 解析阶段生效,无法阻止初始下载。

2026-04-20 21:30:16 180

原创 雷电接口对HTML函数工具有提速作用吗_高速外设方法【方法】

二、eGPU加速WebGPU计算;以下是几种可行的提速关联方法:一、使用雷电接口连接高速外置SSD作为开发环境存储盘将HTML函数工具的项目文件、依赖库及构建缓存置于雷电3/4协议的NVMe外置固态硬盘中,可显著提升文件读写吞吐量,缩短资源加载与打包时间。二、通过雷电扩展坞接入多GPU加速计算单元部分HTML函数工具(如基于WebAssembly编译的数学运算模块或Canvas密集型渲染逻辑)可调用WebGL或WebGPU后端,借助雷电接口连接的外置GPU(eGPU)实现并行计算加速。

2026-04-19 23:20:55 162

原创 迷你主机能否胜任HTML开发_小体积设备工具适配建议【方法】

迷你主机可稳定支撑HTML开发,需满足i3-1215U/R5 7530U、16GB内存、PCIe 4.0 SSD等基础配置,并采用轻量工具链、容器化、多屏优化、内存压缩及远程编译等五类适配策略。二、利用容器化隔离提升环境一致性迷你主机受限于物理资源,难以长期维持多个Node.js版本、不同npm包依赖共存的复杂本地环境。三、外接显示与输入设备优化多任务操作流HTML开发涉及代码编辑器、浏览器DevTools、终端、设计稿四窗口并行,迷你主机虽体积小,但普遍配备双HDMI 2.1或雷电4接口,支持多屏输出。

2026-04-19 23:19:34 195

原创 CSS如何消除移动端点击高亮_通过tap-highlight-color属性优化

移动端点击高亮是什么东西?就是你点一下按钮或链接,iOS Safari、Android Chrome 会默认加一层半透明灰/蓝蒙版——不是 bug,是浏览器内置的「触摸反馈」。最简写法和常见翻车点直接设为透明就行,但必须注意三点:-webkit-tap-highlight-color 必须写在可点击元素上(比如 a、button、带 onclick 的 div),不能只写在 body 或全局 * 上——很多人的样式没生效,就是因为挂错地方了值必须是 rgba(0,0,0,0) 或 transparent;

2026-04-18 23:25:50 252

空空如也

空空如也

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

TA关注的人

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