前端技术文章
-
长段落最后只剩几个字时,CSS text-wrap-style: pretty 可以让浏览器优先减少孤行,但它比普通换行更耗计算。本文从标题、正文和 contenteditable 三种场景拆开 pretty 与 balance 的边界,并给出兼容写法与检查方法。309 收藏 -
SPA 局部导航请求失败时,先保留旧内容,再把错误、重试和兼容回退收进同一条验收流程。文章用 Navigation API 的 navigateerror、intercept() 和能力检测说明如何避免空白页与重复重试。308 收藏 -
用 useActionState 让 Server Action 在校验失败时同时返回字段值和错误信息,避免表单回显为空,并区分预期错误与异常。308 收藏 -
围绕 localStorage 配额异常,说明同步写入的失败边界、异常捕获、内存降级和迁移 IndexedDB 的判断方法。308 收藏 -
用 adoptedStyleSheets 把同一份构造样式表复用到多个 ShadowRoot,重点核对 CSSStyleSheet 构造时机、跨文档限制、动态更新与不支持浏览器的 style 回退。307 收藏 -
Popover API 的弹层如果只给 :popover-open 写过渡,首次打开和关闭时常会出现闪现或瞬间消失。本文从最小示例出发,说明 @starting-style、transition-behavior、overlay 与 reduced motion 的配合边界。307 收藏 -
前端使用 ReadableStream 逐块读取 fetch 响应时,停止按钮应通过 AbortController 取消底层请求,并在 reader、TextDecoder 和异常收尾之间划清边界。306 收藏 -
用 View Transitions API 把列表卡片与详情页的关键元素连接起来,掌握 view-transition-name 的唯一性、路由更新封装、能力回退和减少动效处理。305 收藏 -
用 Fetch 读取 Response.body 的 ReadableStream,按块更新页面,并处理 UTF-8 中文跨块、HTTP 异常、空 body 和取消读取。304 收藏 -
同一张商品卡片放进主栏、侧栏和弹窗后,不该继续按浏览器窗口宽度硬切布局。用 CSS 容器查询让组件根据自己的可用宽度切换网格、字号和按钮排列,并补上不支持时的降级写法。302 收藏 -
TypeScript 项目的性能优化涉及编译速度、运行时性能和代码体积等多个方面。 本教程介绍常见的性能优化技巧,帮助构建更高效的 TypeScript 应用。 TypeScript 性能优化维度 编译速度 增量构建 | skipLibCheck 运行时性能 类型推断 | 避免 any 包体积 Tr302 收藏 -
文章 · 前端 | 2个月前 | 前端 · 性能优化 · javascript · ResizeObserver ResizeObserver loop completed 表格自适应列宽 前端防抖 ResizeObserverEntry
表格列宽跟随容器变化时,ResizeObserver 回调里直接改尺寸,容易让观察回调再次触发,最终出现 ResizeObserver loop completed with undelivered notifications。本文比较同步改宽、requestAnimationFrame 合并和断点缓存三种方案,给出一个可复查的表格列宽实现。301 收藏 -
fetch 收到 404 时,Promise 通常仍会 resolve,因为服务器已经返回了 HTTP 响应。本文用 Response.ok、Response.status 和主动抛错讲清 catch 的正确使用边界。299 收藏 -
React useMemo 依赖数组中的对象每次渲染都重新创建时,即使字段不变也会重复计算。本文用引用相等、原始依赖和 useEffect 场景说明正确处理方式。297 收藏 -
拖拽排序松手后顺序回跳,通常不是 CSS 问题,而是指针位置、占位元素和最终数组没有在同一个时序里更新。本文用 Pointer Events、占位节点和单一提交点拆解竞态,并给出可复核的实现与验收方法。296 收藏