前端技术文章
-
文章 · 前端 | 5天前 | 前端 · 性能 · javascript · 浏览器API · Web Worker · ArrayBuffer postMessage Web Worker structured clone transfer list
Web Worker 的 postMessage 默认使用 structured clone,接收端拿到的是独立副本。本文解释对象复制、ArrayBuffer 转移、transfer list 和生命周期边界,帮助前端开发者判断什么时候复制、什么时候交接所有权。290 收藏 -
WebSocket close 事件出现 1006 时,浏览器并不是收到了服务端发送的 1006。本文用 CloseEvent 字段、readyState、Network 记录和服务端日志对照,建立一套可执行的异常断链排查方法。286 收藏 -
图片加载完成前先用 aspect-ratio 建立稳定占位,再配合 width、height、object-fit 和兼容降级,减少卡片内容被推移造成的布局跳动。282 收藏 -
动态 import 失败时,用统一的 catch 和 finally 切换到可重试的降级界面,并区分网络、路径和模块执行问题。282 收藏 -
文章 · 前端 | 4天前 | javascript · Fetch API · 前端请求 · 异步取消 · AbortController AbortSignal.any AbortSignal.timeout fetch取消请求
JavaScript 请求超时和主动取消不是同一件事:本文对比 AbortSignal.timeout、AbortController 与 AbortSignal.any,给出错误区分、signal 一次性使用和旧浏览器定时器清理的实战写法。263 收藏 -
文章 · 前端 | 3天前 | javascript · 前端性能 · IntersectionObserver · 懒加载 · rootMargin · 图片懒加载 IntersectionObserver 前端性能 rootMargin
用 IntersectionObserver 的正向 rootMargin 扩大交叉计算区域,让图片在进入视口前开始加载;文章同时说明四值写法、嵌套滚动容器和重复回调的处理方式。263 收藏 -
文章 · 前端 | 5天前 | pwa · Service Worker · 前端缓存 · 缓存更新 Service Worker skipWaiting clients.claim Cache Storage
Service Worker 更新后仍读到旧文件,通常不是浏览器拒绝更新,而是新 worker 还在 waiting、页面仍由旧 controller 控制,或 fetch 代码继续命中旧的 Cache Storage。本文用版本化缓存、activate 清理和可控接管方式排查这个边界。251 收藏 -
文章 · 前端 | 4天前 | 前端 · javascript · Fetch API · 异步请求 · Fetch AbortController 响应体 Response.json AbortError
AbortController 取消 fetch 后,Response 可能已经拿到但响应体还没读完,继续调用 text 或 json 就会抛出 AbortError。本文给出取消判断、单次消费响应体、区分网络失败与请求竞态的实用写法。248 收藏 -
Vue 3 使用 provide/inject 传递跨组件状态时,字符串键容易让类型变成 unknown 或 undefined。本文用 InjectionKey 绑定上下文类型,并说明 readonly、必需注入、可选注入和默认值的边界。247 收藏 -
用模板字面量类型生成 xxxChanged 事件名,并通过泛型与索引访问类型让回调参数跟随属性类型推导,最后说明动态字符串和可选属性的边界。247 收藏 -
CSS position sticky 不生效时,优先检查最近的滚动机制祖先、滚动轴、top 阈值和父级可用空间,按清单快速定位参照容器问题。241 收藏 -
CSS subgrid 能让嵌套卡片在指定方向沿用父网格轨道,解决标题、正文和操作区逐卡片漂移的问题。本文说明列与行的选择、gap 继承、命名线和隐式轨道边界。238 收藏 -
文章 · 前端 | 1天前 | javascript · web components · custom elements · 前端排错 · Web Components Custom Elements attributeChangedCallback observedAttributes
attributeChangedCallback 不触发时,先检查 observedAttributes 是否监听了正确的 attribute,再确认代码改的是 DOM attribute 而不是只改 JavaScript property。本文用最小示例说明属性反射、初始值和回调重渲染的边界。233 收藏 -
Service Worker 更新失败通常不是简单清空浏览器缓存,而是脚本版本、install 预缓存、waiting 状态和 fetch 策略没有对齐。本文用一个稳定的 sw.js 与版本化缓存示例,说明如何配置更新、控制接管时机,并用 DevTools 定位旧页面来源。222 收藏 -
IndexedDB 事务不能稳定跨过 await,因为事务只在创建任务和请求事件回调中保持 active。先完成异步准备,再创建最小范围事务,并用 complete 与 abort 判断最终结果。221 收藏