
image.png
一、核心性能指标(Lighthouse 标准)
-
加载性能
-
LCP (Largest Contentful Paint) :最大内容渲染时间
- 目标:≤2.5 秒(优秀)
- 优化方向:优先加载首屏关键资源,使用
<link rel="preload">预加载最大元素
-
FCP (First Contentful Paint) :首次内容渲染时间
- 目标:≤1.8 秒(优秀)
- 优化方向:减少关键渲染路径长度,使用
async/defer加载非阻塞脚本
-
-
交互体验
-
FID (First Input Delay) :首次输入延迟
- 目标:≤100ms(优秀)
- 优化方向:避免主线程长时间阻塞,使用
requestIdleCallback处理非紧急任务
-
CLS (Cumulative Layout Shift) :累积布局偏移
- 目标:≤0.1(优秀)
- 优化方向:为图片 / 视频设置
width/height属性,避免动态内容无占位符加载
-
-
资源效率
-
TTI (Time to Interactive) :可交互时间
- 目标:≤5 秒(移动端)/≤3 秒(桌面端)
- 优化方向:代码分割(Webpack SplitChunks),使用懒加载组件
-
二、其他关键指标
FMP (First Meaningful Paint) :首次有意义渲染
SI (Speed Index) :页面加载速度指数(越小越好)
-
内存使用:
- JS 堆内存 < 500MB(移动端)/< 1GB(桌面端)
- 无内存泄漏(通过 Chrome Memory Tab 检测)
三、优化目标与策略
-
资源体积优化
- JS:Gzip/Brotli 压缩后 < 200KB(首屏)
- CSS:压缩后 < 100KB
- 图片:WebP/AVIF 格式替代 JPEG/PNG,体积减少 25%-50%
-
渲染性能优化
- 关键 CSS 内联(Critical CSS)
- 使用
Intersection Observer实现懒加载 - 减少重排与重绘(使用
will-change提示浏览器优化)
-
网络优化
-
缓存策略:
- CDN 缓存静态资源
- Service Worker 实现离线缓存
HTTP/2 多路复用
DNS Prefetch:
<link rel="dns-prefetch" href="//example.com">
-
-
代码质量优化
- 避免闭包内存泄漏
- 防抖节流处理事件监听
- 使用
Web Workers处理计算密集型任务
四、工具与监控
-
测量工具
- Lighthouse:自动化生成性能报告
- WebPageTest:多地点测速与视频录制
- Chrome DevTools:Performance 面板分析时间线
-
持续监控
-
RUM(真实用户监控):
- 阿里云 / 腾讯云的前端监控服务
- 使用
Navigation Timing API记录关键指标
建立 SLA:页面加载失败率 < 0.5%,慢加载率 < 5%
-
五、场景化优化示例
-
移动端:
- 优先加载低分辨率图片(srcset)
- 启用数据压缩(Brotli 比 Gzip 压缩率高 20%)
-
电商详情页:
- 骨架屏 + 渐进式图片加载(Progressive JPEG)
- 分页加载替代无限滚动
通过组合使用上述指标与策略,可实现:
- 首屏加载时间减少 30%-50%
- 交互延迟降低 40%
- 内存占用减少 25%
- 带宽消耗节省 30%+