-
Vite 或 React 前端发布后突然白屏,常见原因是 index.html 与带 hash 的 JS/CSS 产物不一致,CDN 或浏览器还命中了旧缓存。处理时先确认控制台和 Network 里的 JS 404,再回滚 HTML、清理 CDN、保留最近构建产物,并补上发布前后的检测与告警。
-
WebSocket close code 排查不要只盯着数字:浏览器主动关闭只能使用 1000 或 3000–4999,1006 等保留码只表示观测到的异常;结合 reason、wasClean、readyState 和重连退避,才能定位协议、消息大小、服务端和网络问题。
-
用浏览器原生 Popover API 做一个键盘可用的操作菜单,覆盖 popovertarget、自动关闭、焦点回收、toggle 事件和不支持浏览器的降级方案。
-
CSS :has() 让父元素可以根据子元素状态切换样式,适合表单错误提示、选中卡片和条件高亮。文章用 :user-invalid、:checked 与 @supports 说明最小写法、边界和旧浏览器降级。
-
这是 TypeScript 14 年来最大的一次变革。不是语法变了,不是 API 变了——是编译器本身被换掉了。一、125 秒 → 10 秒,这 10 倍速从哪来的?先看一组数据。2026 年 7 月 9 日,微软正式发布 TypeScript 7.0。官方博客放出了一组基准测试:代码库代码量TS
-
讲清 HTML dialog 模态关闭后读取 returnValue 的正确时机,比较 close(value)、按钮 value 与 method=dialog,并处理 Esc 取消和旧值残留问题。
-
Fetch API 的 Response.json() 失败后不能直接再读同一个响应体。本文用 text() 与 clone() 解释 bodyUsed 边界,并给出保留原始文本、记录状态码和控制日志内容的实用写法。
-
CSS 容器查询让卡片组件根据自身可用宽度改变布局,而不是只看浏览器宽度。本文用商品卡片示例讲清 container-type、@container、断点选择和回归检查。
-
本文详解在 Telegram Bot 开发中,当用户未设置用户名时,如何通过 chat_id、手机号、邮箱等多级 fallback 策略实现用户唯一标识与可追溯联系,兼顾合规性与实用性。 本文详解在 Telegram Bot 开发中,当用户未设置用户名时,如何通过 chat_id、手机号、邮箱等多级
-
页面使用 position: sticky 或 fixed 固定导航后,跳转到标题的锚点常常被导航栏盖住。本文用 scroll-margin-top 与 scroll-padding-top 区分元素级和容器级修复,补上动态导航高度、移动端安全区和浏览器降级检查。
-
Monorepo 是一种将多个项目放在同一个代码仓库中的开发模式。 TypeScript 通过项目引用和工具链支持 Monorepo,可以高效管理多个包。 Monorepo 项目结构 根目录 (root) package.json | tsconfig.json | lerna.json | tur
-
同一个后台系统开两个标签页时,登录态、筛选条件或草稿状态很容易互相覆盖。本文用 BroadcastChannel 搭一个可验证的同步层,处理消息去重、版本冲突、页面关闭和不支持时的降级边界。
-
本文介绍如何基于系统模块定义和用户实际权限,生成一个带布尔标记(1/0)的权限映射对象,实现模块动作级的细粒度权限比对与结构化输出。 本文介绍如何基于系统模块定义和用户实际权限,生成一个带布尔标记(1/0)的权限映射对象,实现模块动作级的细粒度权限比对与结构化输出。做权限管理时,经常会遇到这样一个场
-
小报表可以由浏览器直接生成,大数据量报表则应交给后端异步任务,并通过进度事件和短时下载地址交付。关键不是文件后缀,而是浏览器内存、请求时限、失败重试和权限边界。
-
用 CSS text-wrap: balance 处理中文卡片标题和文章标题的断行,配合 max-width、@supports 和可访问性检查,避免标题一行孤零零或切换时跳动。