前端技术文章
-
浏览器回退后表单内容仍然保留,通常不是 localStorage 写错,而是页面命中了 bfcache。本文用 pageshow、pagehide 和 persisted 判断真实生命周期,再给出需要清空状态时的可靠处理方式。170 收藏 -
Array.toSorted 适合在不改动原数组的前提下完成排序,但数字、对象和旧运行环境都需要额外配置。本文从 sort 与 toSorted 的差异开始,给出比较函数、兼容写法和回归检查清单。169 收藏 -
Fetch 调用 AbortController 取消后,catch 和 finally 仍会按 Promise 规则执行;真正需要防止的是旧请求在 await 后继续更新业务状态。本文用 signal.aborted、请求代次和 finally 清理讲清排查与修复方法。168 收藏 -
Fetch 使用 ReadableStream 作为请求体时,RequestInit 必须显式写 duplex: half。本文从流的结束、取消、错误处理和浏览器兼容四个方面给出可落地的上传写法。168 收藏 -
文章 · 前端 | 3星期前 | html · 前端 · javascript · 浏览器API · dialog close cancel HTMLDialogElement requestClose
用原生 dialog 做确认弹窗时,requestClose() 能把 Esc、关闭按钮和脚本关闭统一到 cancel 与 close 两个事件,并保留 returnValue 的结果语义。163 收藏 -
讲清 Web Worker 使用 Transferable 传回 ArrayBuffer 结果的写法,区分结构化克隆、所有权转移与共享内存,并说明 detach、TypedArray 和生命周期边界。162 收藏 -
CSS sticky 不生效时,重点检查 top 偏移、父容器 overflow、实际滚动祖先和可用高度差,按清单定位错误参照并修复。161 收藏 -
CSS shape() 可以把响应式卡片的裁切路径写成相对尺寸,让 clip-path 在容器变化时保持比例;本文用真实 CSS 片段拆开坐标起点、line/curve 命令、百分比伸缩和 @supports 回退验收。160 收藏 -
用组件场景区分 CSS @container 的 style query 与 size query,说明 container-type、自定义属性、组合条件和常见误用。158 收藏 -
IntersectionObserver 回调频繁触发不等于请求必须重复。本文从首次 observe、threshold 穿越和 entries 批量回调说起,用元素级 loading/done 状态、rootMargin 与 unobserve 设计稳定的懒加载去重方案。154 收藏 -
WebSocket close code 1006 不是服务端发送的关闭原因,而是浏览器在没有收到 Close 帧时给出的异常关闭表示。本文用 CloseEvent、代理日志和服务端日志三层证据定位断开位置。154 收藏 -
用 structuredClone 深复制包含 Map、Set 和嵌套对象的数据,检查容器类型、引用独立性与共享引用,并说明函数、Symbol、自定义原型和旧环境兼容边界。153 收藏 -
scheduler.postTask 可以把前端任务按 user-blocking、user-visible 和 background 分层,并通过 AbortController 取消尚未执行的工作。本文从交互卡顿场景出发,给出最小用法、任务取消、兼容降级和验收边界。151 收藏 -
文章 · 前端 | 2星期前 | 前端 · javascript · Web Components CustomElementRegistry Scoped Custom Element Registries ShadowRoot
Scoped Custom Element Registries 为 Web Components 提供独立命名空间,让不同组件库或微前端可以保留同名标签。本文从全局注册冲突出发,说明 ShadowRoot、元素子树和渐进降级的边界。150 收藏 -
JavaScript AbortController 可以取消 fetch,也能通过 addEventListener 的 signal 自动移除事件监听。本文讲清控制器创建、AbortError 判断、reason 读取和常见复用陷阱。150 收藏