前端技术文章
-
从一个面板尺寸越改越抖的实际场景出发,定位 ResizeObserver 反复触发的回路,区分布局读取与写入边界,并用稳定尺寸和帧内合并完成验证。346 收藏 -
文章 · 前端 | 1天前 | javascript · 前端工程 · Web API · 事件监听 · AbortSignal 事件订阅 JavaScript Observable 响应式清理 addEventListener signal
不依赖尚未普遍可用的 Observable API,使用 AbortController 和 AbortSignal 统一管理事件监听、异步请求与订阅清理,讲清生命周期、重复取消和兼容回退。236 收藏 -
文章 · 前端 | 1天前 | 前端 · javascript · web components · 可访问性 · 表单校验 Web Components ElementInternals Custom Elements Shadow DOM
自定义元素放进原生 form 后,ElementInternals 可以让组件参与表单校验、提交和无障碍语义。本文用一个邮箱字段拆开 setValidity、表单状态同步和回退边界。205 收藏 -
从登录状态、编辑草稿和多窗口协作三个场景出发,对比 BroadcastChannel、localStorage 的 storage 事件与 SharedWorker 的消息路径,给出选择边界和可验证的最小实现。418 收藏 -
用 AbortSignal.timeout 为 fetch 设置可解释的超时边界,区分 TimeoutError、AbortError 与网络错误,并处理响应体读取阶段的取消和兼容降级。223 收藏 -
文章 · 前端 | 2天前 | 前端 · 性能优化 · javascript · Web API · JavaScript ArrayBuffer structuredClone Web Worker transfer
把 ArrayBuffer 交给 Web Worker 或异步校验流程时,structuredClone 默认会复制数据;在 transfer 中传入原始 buffer 才会转移底层资源。本文用 byteLength 和失败分支验收转移后的状态,并说明 DataCloneError 与旧环境降级边界。371 收藏 -
文章 · 前端 | 2天前 | javascript · 前端性能 · 浏览器API · AbortSignal 前端性能 scheduler.postTask Prioritized Task Scheduling
用一个小型任务调度器示例说明 scheduler.postTask 的优先级、AbortSignal 取消和 scheduler.yield 让出主线程边界,并给出浏览器能力检测与降级写法。138 收藏 -
用 requestIdleCallback 安排不影响首屏交互的后台任务,结合 IdleDeadline.didTimeout 与 timeRemaining() 分片处理,并给出不支持该 API 时的安全降级方案。480 收藏 -
通过一个批量更新表单行的例子,拆解强制同步布局为何发生,以及如何把尺寸读取与 DOM 写入分开,再用 requestAnimationFrame 合并一帧内的更新。406 收藏 -
文章 · 前端 | 2天前 | 前端 · javascript · 性能排查 · 浏览器API · requestAnimationFrame ResizeObserver ResizeObserver loop completed with undelivered notifications 前端尺寸监听
ResizeObserver 回调里再次改动被观察元素尺寸,可能触发循环通知。本文用最小示例还原报错,拆开 contentRect、requestAnimationFrame 和 lastWidth 的关系,给出可验证的修复边界。285 收藏 -
文章 · 前端 | 2天前 | javascript · 前端开发 · 浏览器 API · ArrayBuffer postMessage Transferable Web Workers structured clone
用一个可复现的 Web Worker 场景解释 ArrayBuffer 的 Transferable 传递:怎样避免大块数据复制,为什么发送后原引用会失效,以及如何用 byteLength 和 messageerror 定位问题。453 收藏 -
文章 · 前端 | 2天前 | javascript · 前端开发 · 浏览器 API · ReadableStream 背压 Web Streams TransformStream WritableStream
用一个可运行的 Web Streams 示例拆开 TransformStream 背压:看清 ReadableStream、writableStrategy 和 WritableStream 之间的队列边界,并处理 flush 与 abort。428 收藏 -
文章 · 前端 | 2天前 | 前端 · css · Web API · 交互动画 · display @starting-style popover CSS transition-behavior overlay top-layer
Popover 打开时能淡入,关闭时却瞬间消失,通常不是 opacity 写错,而是 display 和 overlay 提前切换。本文用最小示例说明 @starting-style、transition-behavior: allow-discrete、display 与 overlay 如何共同保住离场动画,并给出兼容降级边界。225 收藏 -
文章 · 前端 | 2天前 | html · javascript · 前端组件 · Web Components customElements.whenDefined CustomElementRegistry
页面先出现自定义元素、组件脚本随后加载时,customElements.whenDefined() 可以把初始化放到注册完成之后。本文用一个延迟注册的组件拆开升级时机、重复注册和加载失败边界。404 收藏 -
文章 · 前端 | 2天前 | 前端 · javascript · pwa · Service Worker · 离线缓存 · Service Worker CacheStorage Cache API caches.open caches.match caches.delete
用 Cache API 为离线资源建立版本化缓存,覆盖 caches.open、cache.addAll、caches.match 与 caches.delete 的协作方式,并处理新版本缓存失败、旧缓存清理和网络回退边界。418 收藏