前端技术文章
-
IntersectionObserver 观察列表底部时反复触发,通常源于初始通知、相交状态变化与分页请求状态混在一起。本文用 loading、hasMore、nextCursor 和 unobserve 组合,避免同一页重复请求。106 收藏 -
使用 URLSearchParams.append 逐个生成同名查询参数,用 getAll 读取完整数组,并了解 set 覆盖值、数组初始化和后端解析约定的常见坑。483 收藏 -
AbortController 取消 fetch 后,fetch Promise、Response 和 response.body 处于不同阶段。本文说明如何区分主动取消与网络错误,并在只拿到响应头、不再需要正文时安全清理未消费的 response body。492 收藏 -
Fetch 的 Response body 是一次性可读流。response.json() 消费后,response.text()、blob() 或第二次 json() 都可能因 body 已使用而失败。本文解释 bodyUsed、clone 和单次解析的边界,给出可维护的响应处理方式。323 收藏 -
文章 · 前端 | 1星期前 | 前端 · 浏览器API · Service Worker waiting registration.update updatefound installing active
用 updatefound、installing 的 statechange 以及 waiting 和 active 状态,判断 Service Worker 新脚本是未变化、已安装等待激活,还是已经接管页面,避免把 update() 的 Promise 返回误当成更新完成。394 收藏 -
ResizeObserver 回调修改被观察尺寸会形成布局反馈链。本文从循环成因、requestAnimationFrame 调度、期望尺寸守卫和 CSS 容器查询四个方面给出可落地的排查与修复写法。481 收藏 -
用 IntersectionObserver 的正向 rootMargin 扩大交叉计算区域,让图片在进入视口前开始加载;文章同时说明四值写法、嵌套滚动容器和重复回调的处理方式。263 收藏 -
解释 structuredClone 的 transfer 列表为什么会让原 ArrayBuffer 进入 detached 状态,并给出 byteLength、TypedArray 视图和生命周期管理的排查方法。178 收藏 -
Promise.all 失败只代表聚合结果不可用,不会自动取消其他请求。本文用 AbortController、共享 AbortSignal 和请求代次,处理并发请求失败、切页、重试与迟到响应。347 收藏 -
CSS position sticky 不生效时,优先检查最近的滚动机制祖先、滚动轴、top 阈值和父级可用空间,按清单快速定位参照容器问题。241 收藏 -
用组件场景区分 CSS @container 的 style query 与 size query,说明 container-type、自定义属性、组合条件和常见误用。158 收藏 -
connectedCallback 适合处理依赖 DOM 的初始化,但不能把所有逻辑都塞进去。本文用 Web Component 示例区分 constructor、connectedCallback、attributeChangedCallback 和 disconnectedCallback 的职责,并处理重连、子节点时机与事件清理。484 收藏 -
IndexedDB 按 status、updatedAt 等字段查询时,如果 object store 没有二级索引,不要先把全部记录读出再过滤。本文说明如何升级数据库版本,在 onupgradeneeded 中创建 IDBIndex,并用 IDBKeyRange 与游标缩小读取范围。476 收藏 -
Web Worker 不能直接操作页面 DOM,正确做法是让 Worker 计算数据,再用 postMessage 回传,由主线程统一更新页面。443 收藏 -
AbortController 取消 fetch 后,Response 可能已经拿到但响应体还没读完,继续调用 text 或 json 就会抛出 AbortError。本文给出取消判断、单次消费响应体、区分网络失败与请求竞态的实用写法。248 收藏