-
以 MutationObserver 观察动态节点,解释 childList 与 subtree 的范围、组件卸载时的 disconnect、待交付记录的 takeRecords 策略,以及重复挂载和回调写回的清理边界。
-
用一个可运行的 HTML dialog 示例验证 closedby 的 none、closerequest、any 三种关闭边界,并记录 close 事件、returnValue 与旧浏览器降级策略。
-
TypeScript 在 strict 模式下会把 catch 变量视为 unknown。本文从错误收窄、非 Error 抛出值和安全日志三个边界出发,给出可复用的处理函数。
-
从主线程帧预算、滚动事件高频位置读取和观察器边界三个层面,说明怎样用 IntersectionObserver 控制 root、rootMargin、threshold,并通过回调去重与 unobserve 减少滚动监听抖动。
-
浏览器缓存命中却仍请求服务器,往往是资源过期后发生了协商缓存。本文从 304、Cache-Control、ETag、刷新方式和 Fetch cache mode 入手,给出 HTML、静态资源与个性化响应的排查和配置清单。
-
MessagePort 放入 postMessage 的 transfer 列表后,发送侧原对象已失去端口所有权,不能再当作有效通信端点。正确做法是主线程保留 port1、只把 port2 交给 Worker,并用 start、ACK、messageerror 与 close 管理通道生命周期。
-
Transferable objects 可以把 ArrayBuffer 的所有权交给 Worker 或结构化克隆结果,避免不必要的复制。本文用最小 JavaScript 片段说明 transfer list、TypedArray 视图、detached 状态和 SharedArrayBuffer 的边界。
-
IndexedDB 按 status、updatedAt 等字段查询时,如果 object store 没有二级索引,不要先把全部记录读出再过滤。本文说明如何升级数据库版本,在 onupgradeneeded 中创建 IDBIndex,并用 IDBKeyRange 与游标缩小读取范围。
-
首屏图片明明已经压缩,LCP 仍然偏慢,常见原因是资源发现晚、优先级被误用或懒加载挡住了关键图。本文用 fetchpriority、loading、preload 和 DevTools 网络瀑布建立一套可验收的加载顺序。
-
subtle.digest 不支持流式输入。本文说明如何用 Blob.slice 控制单块内存,并通过增量哈希器持续 update,正确计算大文件的 SHA-256。
-
CSS 的 height:auto 过去很难直接做平滑过渡。本文从 max-height 和 JavaScript 测量的旧方案切入,演示 interpolate-size: allow-keywords 的最小改造,并核对继承范围、浏览器降级与 prefers-reduced-motion 边界。
-
CSS Flex 对齐文字和图标时,align-items: baseline 负责共享文字基线,行高与按钮默认样式决定细节;本文给出最小写法、inline-flex 替代方案和选择 center 的边界。
-
解释 CSS :has() 与 :is() 组合时参数选择器如何参与优先级计算,说明为什么后写的规则仍可能失效,并给出用 :where()、拆分选择器和级联层恢复可维护覆盖关系的方法。
-
当卡片标题、正文和按钮高度不一致时,CSS subgrid 可以让嵌套卡片共享父级网格轨道。本文用一组商品卡片拆开 grid-template-rows: subgrid 的生效条件、代码改法、@supports 回退与常见边界。
-
前端多标签页同步主题、登录态提示或草稿状态时,可以监听 Window 的 storage 事件。本文从一个主题同步小组件出发,说明事件来源、关键字段、删除处理和 sessionStorage 的边界。