-
使用 AbortSignal.any 合并用户、页面与超时取消来源,解释已取消输入、reason 传播、请求级控制器和计时器清理,并说明联合取消不能替代服务端回滚。
-
Service Worker 更新时不要直接覆盖旧缓存。本文用版本化缓存、activate 清理和接管策略,拆解新资源先落地、旧资源再删除的可靠流程。
-
本文提供一种基于光标位置检测用户是否在 最外层方括号 [] 内输入的可靠方案,支持嵌套结构(如 Lea ve[ Nested[ Test[] ] ]),并阻止在括号外的非法输入与破坏性删除操作。 本文提供一种基于光标位置检测用户是否在 `` 最外层方括号 `[]` 内输入的可靠方案,支持嵌套结构(如
-
浏览器端要把持续产生的文本压缩成 gzip,可以先用 TextEncoderStream 转成 UTF-8 字节,再用 CompressionStream("gzip") 压缩。本文给出从字符串流到 Uint8Array 的完整管道,并解释读取结束、异常传播和上传时的 Content-Encoding 边界。
-
本文详解如何通过合理组织数据集和配置堆叠选项,在 Chart.js 中构建按年份分组、按动物类型堆叠的条形图,并避免图例标签重复,最终呈现清晰的 dogs、cats、2024、2024 四类独立标签。 本文详解如何通过合理组织数据集和配置堆叠选项,在 Chart.js 中构建按年份分组、按动物类型堆
-
用 Web Components 的命名 slot 说明 HTMLSlotElement.assignedElements() 的直接读取、flatten 展开、fallback 内容和 slotchange 重读方式。
-
用一个可复用的卡片组件说明 CSS container query 与 ResizeObserver 的分工:样式交给 CSS,数据计算交给观察器,并通过 requestAnimationFrame 合并重复通知。
-
用 ResizeObserver 监听响应式卡片宽度时,先读取 borderBoxSize,再用 requestAnimationFrame 合并同一帧更新,避免回调里反复改布局造成循环告警。
-
CSS grid lanes 怎样实现不等高卡片的紧凑布局?本文用 display:grid-lanes 和 grid-template-columns 说明原生紧凑排列的工作边界,再用 @supports 保留普通 Grid 回退,补充 DOM 顺序、跨度和实验能力的取舍。
-
讲清 Document.adoptNode 如何把外部文档节点转移到当前文档、为什么 parentNode 会暂时为空,以及它和 importNode 在移动与复制上的区别。
-
navigator.locks 可以让同一来源的多个标签页共享一个命名锁。本文用资源刷新示例说明怎样把缓存检查、网络请求和写入放进同一个异步临界区,并比较 ifAvailable、signal、query 与 steal 的适用边界。
-
Service Worker 更新并不等于页面立即切换。本文用 skipWaiting、clientsClaim 和 controllerchange 说明如何控制新 Worker 的激活与页面接管时机,避免新旧缓存混用。
-
Import Maps 可以把浏览器模块中的相对路径统一成稳定别名。本文从 imports、路径前缀、scopes 和加载顺序入手,给出可迁移的 HTML 示例与回归清单。
-
Vite 8 用 Rolldown 统一开发依赖优化与生产打包链,同时把 JavaScript 转换、压缩和 CSS 压缩边界交给 Oxc 与 Lightning CSS。本文按配置和插件边界说明升级时如何核对。
-
从图块边界、内部内容坐标和 viewBox 三个层面,说明 SVG patternUnits 与 patternContentUnits 的差异、默认值及配置选择。