- 博客(35)
- 收藏
- 关注
原创 JavaScript中函数声明位置对解析器预编译的影响
JavaScript中函数声明会被提升(hoisting),但提升行为与声明位置密切相关——不是所有函数都能被完全提升,关键看它是函数声明还是函数表达式。函数声明会被完整提升使用 function 关键字直接声明的函数(即函数声明语句),在预编译阶段会被整体提升到当前作用域顶部,包括函数名和函数体。函数表达式只提升变量名,不提升赋值如果函数是通过 var/let/const 声明并赋值为函数(即函数表达式),则只有变量声明部分被提升,而函数体不会被提升。是否可调用,取决于变量声明方式:?
2026-05-08 21:41:57
187
原创 Golang怎么实现SSE服务端推送事件_Golang如何用Server-Sent Events实时推送数据【教程】
实操建议:立即学习“go语言免费学习笔记(深入)”;(SSE 注释,客户端忽略)在写入前检查 w.(http.CloseNotifier).Done()(Go 1.8+ 已弃用,改用 req.Context().Done())对每个连接启动 goroutine 处理事件,但用 context.WithTimeout 控制总存活时间(比如 5 分钟),防长连接堆积别用 log.Printf 频繁打日志 —— 日志 I/O 可能阻塞 flush,导致客户端卡住客户端收到 error 事件或反复重连怎么办?
2026-05-08 21:39:30
217
原创 如何正确管理浮层提示(Tooltip)显示时的页面焦点顺序
在构建自定义 Tooltip/Popover 组件时,一个常见但易被忽视的可访问性挑战是:当 Tooltip 被挂载到 <body> 或 React Root 节点(而非触发器的 DOM 邻近位置)时,其内部可聚焦元素(如 Close 按钮、操作按钮)会脱离原始视觉与逻辑层级,导致 Tab 键导航出现“跳跃”——例如从触发按钮直接跳到页面末尾的某个链接,中间所有内容被绕过。正确解法:动态恢复焦点链核心思路是 将 Tooltip 视为触发器的逻辑延伸,而非孤立模态层。
2026-05-08 21:37:01
209
原创 CSS如何微调盒子内边距_使用padding简写属性精确控制
→ 四边都是10pxpadding: 10px 20px;→ 上/下=10px,左/右=20pxpadding: 10px 20px 30px;→ 上=10px,左/右=20px,下=30px(左=右,上≠下)padding: 10px 20px 30px 40px;动画中修改padding时,简写会导致浏览器重算全部四边,拆开写可只触发布局变化更小的单边和margin混用时,如果margin用了简写而padding没用,视觉节奏容易错乱多人协作项目里,padding: 8px 12px 8px;
2026-05-07 22:01:06
148
原创 bootstrap怎么设置卡片(Card)的水平排列横向模式
<div class="card me-3" style="min-width: 180px;">...</div>
2026-05-07 21:59:19
153
原创 SQL如何提取分组中的第一条记录_使用ROW_NUMBER定位数据
ROW_NUMBER() 是最稳的分组取首行解法,需在子查询或CTE中按PARTITION BY分组、ORDER BY排序,外层筛选rn=1;用 ROW_NUMBER() 给每组编号再过滤,是最稳的解法直接在子查询或 CTE 里套一层 ROW_NUMBER(),按分组字段 PARTITION BY,再按业务逻辑(比如时间、ID)ORDER BY,最后外层查 rn = 1。ROW_NUMBER() 的 ORDER BY 决定“第一条”是谁同一组内顺序不明确,结果就不可靠。
2026-05-06 20:33:23
184
原创 Vue.js生命周期destroyed钩子中内存泄漏排查与资源释放
destroyed钩子是Vue 2实例销毁后触发的最后一个生命周期钩子,此时实例已解绑、事件监听器被移除、子实例被销毁,但不保证异步操作或外部绑定已清理完毕,需手动释放全局事件、定时器、第三方库实例、手动创建DOM节点及未取消请求等资源。在 Vue 2 中,destroyed 钩子是实例销毁后触发的最后一个生命周期钩子,此时 Vue 实例已解绑、所有事件监听器被移除、所有子实例也被销毁。哪些资源必须手动释放?关键原则:只清理你在组件中主动创建/绑定的资源,并确保清理逻辑幂等、无副作用。
2026-05-06 20:31:39
208
原创 Layui表格如何使用第三方插件实现树形展示
推荐使用第三方插件 layui-treeTable,需配置 idField 和 parentIdField,注意数据格式与事件重绑定。强行传嵌套数据只会渲染第一层,子节点被忽略。常见错误现象:table.render() 后只显示根节点,控制台无报错,但点击“展开”没反应——因为根本没绑定展开行为。用哪个第三方插件最省事推荐 layui-treeTable(GitHub 上 star 较多、适配 Layui 2.x 主流版本),不是官方插件,但封装了 DOM 插入、图标切换、展开收起动画和懒加载钩子。
2026-05-01 20:42:15
179
原创 如何在 Go 中为权威 DNS 服务器实现持久化域名记录存储
以下是一个最小可行示例,展示如何从 example.com.zone 文件加载记录并启动权威响应:package mainimport ( "log" "net" "os" "github.com/miekg/dns")func loadZoneFromFile(filename string) (map[string]dns.RR, error) { f, err := os.Open(filename) if err!
2026-05-01 20:40:30
215
原创 Redis怎样优化客户端拉取拓扑的频率_在客户端层面捕获MOVED异常时才触发全局路由表刷新
很多客户端(如旧版 redis-py-cluster)会在首次连接时调用 CLUSTER SLOTS,但这会引入两个硬伤:新节点刚加入但尚未完成槽迁移时,CLUSTER SLOTS 返回的仍是旧映射,客户端缓存后反而更难收敛客户端若维护多个连接池,每个连接都做一次全量拉取,对集群管理节点(通常是 master)造成瞬时压力,尤其在服务启动洪峰期真正可靠的起点,是让第一次 GET 或 SET 命中 MOVED 后,再针对性地向报错节点发 CLUSTER SLOTS ——此时返回结果必然反映最新分配状态。
2026-04-29 23:32:54
32
原创 Golang如何做Docker多阶段构建_Golang Docker教程【秒懂】
FROM golang:1.22-slim AS builder —— 用 -slim 而非 latest,tag 固定,CI 可复现RUN CGO_ENABLED=0 GOOS=linux go build -a -ldflags '-s -w' -o /app/main . —— -s -w 去符号表和调试信息,体积直降 30%~50%别在 builder 阶段 RUN rm -rf $GOPATH,那只是删文件,层还在,镜像大小不变scratch 还是 alpine:latest?
2026-04-29 23:31:17
27
原创 如何解决Oracle中文乱码_NLS_LANG字符集配置指南
根本原因是客户端NLS_LANG未正确设置,导致字符集协商失败;应先查数据库字符集,再按客户端类型配置NLS_LANG或连接参数,确保与数据库字符集一致。Oracle客户端连接后中文显示为问号或方块根本原因是客户端 nls_lang 环境变量未正确设置,导致 oracle 客户端无法告诉服务端“我用的是什么字符集”。服务端按默认(比如 al32utf8)发数据,客户端却用 zhs16gbk 解,或者反过来,必然乱码。
2026-04-28 22:17:34
163
原创 JavaScript对象字面量增强语法与简写形式规范
JavaScript对象字面量增强语法包括属性名简写、方法简写、计算属性名及与解构赋值协同使用,提升简洁性与可读性,但需注意变量已声明、this绑定、表达式有效性及undefined处理等规范。JavaScript对象字面量的增强语法和简写形式,核心是让代码更简洁、可读性更强,同时减少冗余书写。正确写法:const name = 'Alice';// 等价于 { name: name, age: age }?
2026-04-27 21:25:32
230
原创 宝塔面板安装后显示无法连接数据库_检查MySQL服务状态
MySQL 服务根本没启动宝塔面板显示“无法连接数据库”,最常见原因是 mysqld 进程压根没跑起来,不是密码错、端口占、权限问题,就是服务停了。执行 systemctl status mysqld 或 service mysql status(不同系统命令略有差异),看输出里有没有 active (running)。默认路径是 /www/server/data/*.err(比如 /www/server/data/vm-xxx.err),错误最密集的地方往往在文件末尾。
2026-04-27 21:24:03
231
原创 SQL报表聚合中间结果过大_分阶段统计
SQL报表中间结果过大的本质是单次聚合数据量超出数据库处理能力,解决方法是分阶段处理:先过滤再聚合、用CTE或临时表固化中间结果、按时间/区域预聚合、控制GROUP BY字段组合避免高基数膨胀。通义听悟 阿里云通义听悟是聚焦音视频内容的工作学习AI助手,依托大模型,帮助用户记录、整理和分析音视频内容,体验用大模型做音视频笔记、整理会议记录。
2026-04-25 22:01:04
193
原创 如何在 Go 中为权威 DNS 服务器实现持久化域名记录存储
以下是一个最小可行示例,展示如何从 example.com.zone 文件加载记录并启动权威响应:package mainimport ( "log" "net" "os" "github.com/miekg/dns")func loadZoneFromFile(filename string) (map[string]dns.RR, error) { f, err := os.Open(filename) if err!
2026-04-24 23:31:18
205
原创 如何管理闪回数据归档_Flashback Data Archive表空间分配
Flashback Data Archive 表空间满了怎么办直接说结论:dba_flashback_archive_tablespaces 视图里显示的表空间用满,不是因为归档数据本身占满,而是因为底层 fbda 为每个启用 fba 的表自动创建的隐藏历史表(如 sys_fba_hist_xxxxxx)所在表空间撑爆了——它默认复用主表所在表空间,且不走自动段空间管理(assm)的常规清理逻辑。
2026-04-24 23:29:53
180
原创 如何在网页中完整展示数组中所有对象的全部属性
本文介绍如何使用 json.stringify() 将对象数组以结构化、可读的方式渲染到 html 页面中,并修正常见语法错误(如对象属性间缺失逗号),确保内容正确显示。本文介绍如何使用 json.stringify() 将对象数组以结构化、可读的方式渲染到 html 页面中,并修正常见语法错误(如对象属性间缺失逗号),确保内容正确显示。在前端开发中,当需要将一组对象(例如词汇表)的所有属性完整、清晰地展示在网页上时,直接拼接字符串或逐个访问属性不仅繁琐,还容易遗漏字段、难以维护。
2026-04-22 19:51:45
203
原创 mysql修改字段类型时如何避免中断业务_inplace与copy算法详解
5.6+支持INPLACE但受限于类型兼容性、字符集等,须显式指定ALGORITHM=INPLACE和LOCK=NONE,并验证环境约束。ALTER TABLE MODIFY COLUMN 为什么会锁表MySQL 5.6 之前,ALTER TABLE ... MODIFY COLUMN 默认走 COPY 算法:先建新表、逐行拷贝数据、重建索引、删旧表。即使只改字段类型(比如 VARCHAR(100) → VARCHAR(200)),只要不满足“就地修改”条件,依然会触发全表拷贝。
2026-04-20 21:31:41
230
原创 Python怎么进行多条件数据筛选_Pandas布尔索引实战
字符串列需先转数值再比较。= np.nan] 或 df[~(df.col.isna())](后者虽能用,但多一层否定,易读性差)多条件组合时,缺失判断要和其他条件用 & 连接,比如:df[(df.score > 60) & df.name.notna()]用 query() 写复杂条件更简洁,但要注意变量注入和性能差异df.query("age > 25 and city in ['Beijing', 'Shanghai']") 比链式布尔索引少写一堆 df. 和括号,尤其适合动态条件或长表达式。
2026-04-20 21:30:19
186
原创 如何避免备库出现ORA-01555_ADG只读查询中的快照过旧与UNDO优化
ORA-01555 在 ADG 只读库上到底为什么发生adg(active data guard)备库开启只读模式后,select 查询报 ora-01555: snapshot too old,根本原因不是备库没开归档或没应用日志,而是主库的 undo 保留时间太短,而备库查询需要访问“过去某个 scn”的数据版本——这个版本在备库回放日志时已被主库 undo 段覆盖掉。你唯一可控的是让查询别拖太久——因为查询越久,它需要的“历史 SCN”就越老,撞上被覆盖 UNDO 的概率越高。
2026-04-19 23:20:57
175
原创 c++如何将图片读入内存_二进制方式读取jpg与png【附代码】
必须显式指定 std::ios::binary 标志用 .seekg(0, std::ios::end) + .tellg() 获取真实文件大小,别信 .gcount() 或手动计数分配足够空间后,.seekg(0) 回头再读,否则读不到内容std::vector<unsigned char> read_binary_file(const std::string& path) { std::ifstream file(path, std::ios::binary | std::ios::ate);
2026-04-19 23:19:37
167
原创 如何处理ORA-01555报错_快照过旧与UNDO_RETENTION参数调整
重点关注EXPIRED占比是否极低、UNEXPIRED是否持续高位确认UNDO表空间是否启用了AUTOEXTEND:SELECT file_name, autoextensible, maxbytes/1024/1024 AS max_mb FROM dba_data_files WHERE tablespace_name = (SELECT value FROM v$parameter WHERE name = 'undo_tablespace');此时调参治标,切分治本。
2026-04-18 23:25:53
202
原创 Layui tree树形组件如何实现节点的双击重命名功能
实操建议:监听 input 的 keydown.enter 和 blur 两个时机,避免遗漏更新前校验空值或重复名(比如遍历同级节点的 title 字段)使用 tree.updateNode(id, { title: newValue }),其中 id 必须是数字或字符串类型,与原始数据中 id 字段一致若用 tree.reload(),记得传入原始 data 数组的引用,否则修改不会生效为什么双击后点击别处会丢失焦点或触发多次事件常见错误现象是:双击弹出输入框,但鼠标移开就消失;
2026-04-17 22:38:12
210
原创 如何精准控制固定定位头部容器中各元素的初始位置
但其内部子元素(如 .header_icon、.header_txt_frame、.header_menu_container)若采用 position: relative 并设置 top: 30% 或 left: 6%,这些百分比将基于元素自身的原始高度/宽度计算(而非父容器),导致定位不可预测、难以对齐。/* 移除 top/left,由 flex 自动对齐 */}.header_txt_frame { /* 移除 top:30%;left:6% —— 这是错位根源 */ width: 200px;
2026-04-17 22:36:55
224
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅