前端技术文章
-
Vite 环境变量未出现在客户端时,先检查 VITE_ 前缀,再核对 mode、.env 文件和 envPrefix 配置;数据库密码、私钥等服务端秘密不应通过改前缀暴露。464 收藏 -
Background Sync 适合把离线表单的发送时机交给 Service Worker,但它不是本地存储。本文用 IndexedDB outbox、唯一同步标签和失败保留策略,整理一套可回退的延迟提交方案。463 收藏 -
文章 · 前端 | 1个月前 | 前端 · 性能监控 · javascript · 前端性能 PerformanceObserver INP Long Animation Frames API LoAF 卡顿脚本
使用 Long Animation Frames API 采集超过 50ms 的长帧,从 scripts 中按脚本地址、入口函数与字符位置聚合耗时,并区分脚本执行、强制布局和渲染开销。463 收藏 -
跨域 iframe、弹窗通信最容易漏掉的不是消息格式,而是发送方身份校验。本文用 origin、source 和消息结构三道边界,写出可验证的 postMessage 接收与回复代码。462 收藏 -
从触底加载重复请求的现场出发,拆开 rootMargin、哨兵节点和请求状态之间的关系,给出可验收的去重实现与异常处理边界。462 收藏 -
用 Fetch Response.body 和 ReadableStream 将搜索结果按块解析并增量渲染,说明 reader.read、TextDecoderStream、controller.desiredSize 与背压边界。460 收藏 -
用 append 构建同名文本和多文件字段,区分 set、getAll 与单值读取,说明 multipart 请求头、表单重复收集和接收端集合解析的处理方式。459 收藏 -
用 requestIdleCallback 把可拆分的非关键任务放进空闲窗口,结合 deadline、timeout 和降级策略控制主线程压力,并把 DOM 提交交给 requestAnimationFrame。458 收藏 -
前端列表从几百行涨到上万行后,滚动掉帧通常不是单个 CSS 属性造成的。本文用长列表筛选和滚动场景拆解 DOM 数量、批量渲染、可视窗口与主线程任务,给出可复现的 60 FPS 验收方法和回退边界。458 收藏 -
ResizeObserver 回调里直接改尺寸,可能让布局反馈进入下一帧并反复触发 loop completed with undelivered notifications。本文用真实的 ResizeObserver、requestAnimationFrame 和 entry.target.style.width 示例拆解原因,并给出可验收的收敛写法。456 收藏 -
文章 · 前端 | 2个月前 | css · 前端开发 · anchor-name position-try-fallbacks CSS anchor positioning position-anchor 前端浮层
用一个可移动的菜单按钮和提示浮层,验证 CSS anchor positioning 如何通过 anchor-name 建立锚点、position-anchor 连接目标,并用 position-try-fallbacks 在空间不足时切换位置。454 收藏 -
文章 · 前端 | 2个月前 | javascript · 前端开发 · ArrayBuffer postMessage Transferable Web Workers structured clone
用一个可复现的 Web Worker 场景解释 ArrayBuffer 的 Transferable 传递:怎样避免大块数据复制,为什么发送后原引用会失效,以及如何用 byteLength 和 messageerror 定位问题。453 收藏 -
Vite 依赖预构建异常通常涉及依赖指纹、node_modules/.vite 与浏览器强缓存三层。本文给出 --force、optimizeDeps 与 monorepo 链接包的顺序化排查方法。451 收藏 -
CSS color-mix 的默认混合空间会影响主题色的亮度、饱和度和色相。本文用原创示例说明如何选择 oklab、oklch 或 srgb,并处理比例、透明度与组件状态。451 收藏 -
CSS zoom 会让缩放后的组件参与布局,适合整体比例调整;transform: scale() 只做视觉变换,适合不希望推动兄弟元素的预览或悬浮效果。450 收藏