前端性能优化分层框架

前端性能优化 6 大层级的职责、关系、依赖和演进路径。

#type / synthesis #status / evergreen #tech / dev / frontend

[!info] related notes

前端性能优化分层框架

范围

前端性能优化不是单点技术,而是全链路成本控制问题。 本笔记将前端一次访问拆成完整链路,并按 6 大层级组织优化策略。

为什么要放在一起理解

前端性能优化如果只看”技巧”,容易陷入头痛医头。 真正系统的做法是把一次访问拆成链路,每一层都可能成为瓶颈:

输入 URL → 网络请求 → 资源下载 → 解析 → JS 执行 → 样式计算 → 布局 → 绘制 → 合成 → 可交互 → 用户操作 → 数据更新 → 重新渲染 → 长期运行稳定性

6 大层级

第一层:指标与监控层

职责:先定义指标,再定位瓶颈,再做优化,再验证收益。

  • 用户体验目标:用户实际感知
  • 技术指标目标:FCP、LCP、INP、CLS、Bundle 体积等
  • 业务目标:转化率、跳出率、停留时长

核心原则:没有监控的优化,很容易变成”感觉优化”。

相关笔记:性能指标体系性能监控体系性能预算

第二层:网络与传输层

职责:资源怎么更快到浏览器。

  • 减少请求数量:合并小资源、请求去重、接口聚合
  • 压缩传输体积:gzip、brotli、图片格式选型
  • 缓存:强缓存、协商缓存、接口缓存
  • CDN:离用户更近,降低延迟
  • 关键路径优化:preload、preconnect、dns-prefetch

相关笔记:关键路径优化CDN 加速资源压缩HTTP 缓存策略

第三层:构建与资源层

职责:打包产物是不是太大、太多、太重。

  • 控制 Bundle 体积:Tree Shaking、按需引入、去掉重复依赖
  • 代码分割:路由级、组件级、功能级拆分
  • CSS 优化:抽离关键 CSS、清理未使用样式
  • 图片优化:格式选型、尺寸匹配、响应式图片
  • 字体优化:子集化、font-display 配置

相关笔记:代码分割Tree Shaking首屏加载优化

第四层:渲染与运行时层

职责:浏览器渲染流水线和主线程执行效率。

  • 减少重排重绘:合并 DOM 操作、避免读写交替
  • 合成层动画:优先 transform、opacity
  • 防抖与节流:控制高频事件
  • 避免长任务:拆分大任务、Web Worker 卸载
  • requestAnimationFrame:动画与浏览器刷新节奏对齐

相关笔记:浏览器渲染管线合成层动画长任务优化防抖与节流

第五层:框架与应用架构层

职责:框架更新成本和状态管理策略。

  • 减少不必要的更新:memo、computed、组件拆分
  • 状态就近管理:避免全局状态过大
  • 渲染模式选择:CSR、SSR、SSG 按页面类型选择
  • 数据请求优化:请求去重、取消过期请求、分层加载
  • 大列表优化:虚拟列表、分页、懒渲染

相关笔记:CSR、SSR 与 SSG虚拟列表懒加载

第六层:体验与业务策略层

职责:优化用户感知,而非纯技术指标。

  • 骨架屏:更早看到内容结构
  • Loading 分层:局部 loading、渐进展示
  • 占位与防抖动:图片预留宽高,避免 CLS
  • 乐观更新:先更新 UI 再异步提交
  • 渐进增强:弱网降级、能力降级

相关笔记:骨架屏乐观更新

对比与易混淆点

性能优化 vs 包体积优化

包体积只是其中一环。很多卡顿来自运行时渲染、状态更新策略、长任务阻塞。

实验室数据 vs 真实用户数据

Lighthouse 等实验室数据适合发现结构性问题,但真实用户监控(RUM)才知道用户到底慢不慢。

技术优化 vs 体验优化

Lighthouse 跑高分不等于用户体验好。骨架屏、乐观更新、占位防抖动这类”感知优化”往往比纯技术指标更有业务价值。

创建于 2026/4/6 更新于 2026/5/27