前端技术文章
-
Service Worker 的 fetch 事件不是所有请求都适合缓存。本文用同源、GET、路径和请求意图四个条件建立绕过清单,给出静态资源缓存、动态接口放行和旧缓存清理的最小实现。418 收藏 -
文章 · 前端 | 5天前 | 前端 · pwa · Service Worker · 缓存更新 · Service Worker skipWaiting clientsClaim 缓存版本 前端缓存更新
Service Worker 更新时,skipWaiting 负责跳过 waiting,clientsClaim 负责让 active worker 接管已有页面;两者一起使用前,要先确认旧页面引用的资源仍与新 fetch 逻辑兼容。本文给出默认等待、用户确认和即时接管三种版本切换安排。410 收藏 -
用 CSS Grid 的 subgrid 让多张卡片共享父网格的行轨道,解决标题、说明和按钮因内容长度不同而错位的问题,并补充浏览器支持与 fallback 写法。410 收藏 -
用 AbortSignal.any 合并用户取消与请求超时,掌握特性检测、fetch 接入、reason 判断和监听器清理,快速排查请求一创建就中止或超时原因丢失的问题。408 收藏 -
CSS container query 在子组件中不生效,通常是父级没有建立 container-type,或嵌套时查询到了错误的祖先容器。本文用可复用卡片示例拆解 inline-size、container-name、作用域和兼容降级的排查顺序。400 收藏 -
IndexedDB 事务会随事件循环在没有新请求时自动提交。本文用读后写、网络等待、版本升级和同源边界说明为什么不能跨 await 继续使用原事务,以及如何改成稳定的请求回调结构。398 收藏 -
文章 · 前端 | 3天前 | 前端 · Service Worker · 浏览器API · 离线缓存 · 脚本更新 · Service Worker waiting registration.update updatefound installing active
用 updatefound、installing 的 statechange 以及 waiting 和 active 状态,判断 Service Worker 新脚本是未变化、已安装等待激活,还是已经接管页面,避免把 update() 的 Promise 返回误当成更新完成。394 收藏 -
文章 · 前端 | 3小时前 | 前端 · javascript · 性能排查 · Web Streams API · 背压 TransformStream highWaterMark desiredSize Web Streams API
TransformStream 的背压不是只调一个 highWaterMark:输入侧看 writableStrategy,输出侧看 readableStrategy,并让 size(chunk) 与数据单位一致。本文用 pipeThrough、writer.ready 和 desiredSize 整理配置与排查方法。387 收藏 -
IndexedDB 升级被旧页面阻塞时,旧连接要处理 versionchange 并关闭,新页面用 onblocked 延迟显示提示,再在升级完成时撤销提示。本文给出跨标签页可执行的处理结构和边界清单。383 收藏 -
文章 · 前端 | 1天前 | 前端 · web components · 生命周期 · 自定义元素 · document Web Components Custom Elements adoptedCallback adoptNode importNode
Web Components 的 adoptedCallback 只在自定义元素进入新的 Document 时触发。本文区分同文档换位、跨文档移动和 importNode 复制,并说明如何用 oldDocument、newDocument 与 ownerDocument 重绑文档相关资源。382 收藏 -
React Strict Mode 在开发环境会额外执行一次 useEffect 的 setup 和 cleanup,用来检查副作用是否可重复同步。本文区分开发与生产边界,并给出订阅、定时器和请求的清理写法。381 收藏 -
React Suspense 的 fallback 只负责等待态,数据 Promise reject 后要由 Error Boundary 展示失败态。本文用一个可重试的 Promise 状态说明如何接入 Try again、resetKeys 和缓存边界。379 收藏 -
structuredClone 并不是任何对象都能复制。本文用最小示例说明函数、DOM 节点、Symbol、WeakMap 等失败边界,并解释 ArrayBuffer 的 transfer 转移、原型链和属性描述符变化。377 收藏 -
文章 · 前端 | 10小时前 | css · 响应式布局 · Grid布局 · 前端排错 · subgrid · CSS subgrid配置 CSS Grid嵌套布局 grid-template-columns subgrid 网格轨道对齐 subgrid不生效排查
CSS subgrid 的关键是让嵌套网格继承父级列或行轨道。本文从最小配置、轴向继承、网格线映射和隐式轨道四个方面,排查卡片与表单对不齐的常见原因。371 收藏 -
Web Worker 通过 postMessage 传输 ArrayBuffer 时,加入 transfer list 会转移底层内存所有权,使发送端 buffer 进入 detached 状态。本文对比复制与转移,说明消息体、transfer list 和 Uint8Array 视图的正确边界。364 收藏