-
IndexedDB 事务会随事件循环在没有新请求时自动提交。本文用读后写、网络等待、版本升级和同源边界说明为什么不能跨 await 继续使用原事务,以及如何改成稳定的请求回调结构。
-
做学术研究、技术调研时,你还在 arxiv、crossref、pubmed 之间来回切吗?同一个关键词复制粘贴 3 遍。本文教你用 SeekAll SDK + 100 行代码搭一个属于自己的搜索聚合工具,规则自己写,数据本机跑,服务端零接触。痛点:信息散落在多个孤岛做学术研究或技术调研时,我经常遇到
-
讲清浏览器 MessageChannel 把 port2 交给 iframe 的完整链路:等待 iframe 加载、使用精确 targetOrigin 转移端口、在 event.ports[0] 接管并用回执验证双向通信。
-
View Transition API 能让页面切换从硬切变成连续过渡,但快照时机、伪元素样式和不支持浏览器的降级处理,都会造成白闪、旧页面残留或动画不生效。本文从可复现的闪烁现场出发,逐项定位并给出可回退的实现方式。
-
用 updatefound、installing 的 statechange 以及 waiting 和 active 状态,判断 Service Worker 新脚本是未变化、已安装等待激活,还是已经接管页面,避免把 update() 的 Promise 返回误当成更新完成。
-
CSS Anchor Positioning 可以让悬浮提示跟随锚点定位,并在空间不足时尝试备用位置。本文用一个按钮与提示框的静态关系,拆清 anchor-name、position-anchor、position-try 的职责和兼容回退。
-
React 定时器越跑越快,通常是 useEffect 重复创建 setInterval 却没有对称清理。本文用生命周期、依赖数组和 Strict Mode 说明 clearInterval 的正确写法。
-
Vue watch 触发搜索请求时,旧请求可能晚于新请求返回。本文用 onCleanup 或 onWatcherCleanup 取消过期请求,再用请求序号保护状态写回,解决快速输入造成的结果错乱。
-
TransformStream 的背压不是只调一个 highWaterMark:输入侧看 writableStrategy,输出侧看 readableStrategy,并让 size(chunk) 与数据单位一致。本文用 pipeThrough、writer.ready 和 desiredSize 整理配置与排查方法。
-
用 container-type 建立容器查询上下文,再通过 @container 按卡片自身宽度切换单列与两列布局,并说明命名容器、inline-size 与回退方案的边界。
-
TypeScript 7 的原生编译器会并行执行解析、类型检查和输出,但提高 checkers、builders 也会增加 CPU 与内存压力。本文说明三个并行开关的关系,并给出适合本地开发和 CI 的渐进测量方法。
-
ResizeObserver 报告 ResizeObserver loop completed with undelivered notifications 时,先区分布局读取与写入,再用 requestAnimationFrame 合并写入,最后用阈值和断点确认循环已经收敛。
-
从 Node.js ESM 的 import.meta.dirname、import.meta.filename 与 import.meta.url 出发,说明本地文件定位、旧版本兼容、URL 路径和构建发布中的稳妥写法。
-
Interop 2026 将媒体伪类列为重点互操作方向。本文用一个音频卡片示例说明 :playing、:paused、:buffering、:stalled 与 :muted 的边界,并给出特性查询降级和可访问性检查方法。
-
原生 Drag and Drop API 只解决了鼠标拖动,键盘用户仍需要一条明确的选择、移动、确认路径。用按钮化抓手、aria-live 状态和统一提交函数,可以让拖拽排序、方向键移动、焦点恢复与服务端校验共用一套状态模型。