⚡ 网站性能优化
📖 定义
网站性能优化是改善网站加载速度和响应性以增强用户体验的过程。快速的网站可以提高用户满意度、SEO排名和转化率。
🎯 简单类比
餐厅服务速度
慢餐厅(未优化)
├─ 点餐慢(服务器慢)
├─ 厨房混乱(代码低效)
└─ 菜品分开上(资源分散)
快餐厅(已优化)
├─ 快速接单(服务器快)
├─ 高效厨房(代码优化)
└─ 按顺序上菜(优先加载)
⚙️ 工作原理
1. DNS查找
2. TCP连接
3. HTTP请求
4. 服务器响应
5. HTML解析
6. 资源加载
7. 渲染
💡 关键示例
图片优化
<!-- ❌ 未优化 -->
<img src="photo.jpg">
<!-- ✅ 已优化 -->
<img
srcset="photo-400w.jpg 400w, photo-800w.jpg 800w"
sizes="(max-width: 600px) 400px, 800px"
src="photo-800w.jpg"
loading="lazy"
alt="描述"
>
<!-- 现代格式 -->
<picture>
<source type="image/webp" srcset="photo.webp">
<img src="photo.jpg" alt="描述">
</picture>
JavaScript优化
// ❌ 同步脚本
<script src="app.js"></script>
// ✅ defer
<script defer src="app.js"></script>
// 代码分割(React)
const HeavyComponent = lazy(() => import('./HeavyComponent'));
// 防抖
function debounce(func, wait) {
let timeout;
return function(...args) {
clearTimeout(timeout);
timeout = setTimeout(() => func.apply(this, args), wait);
};
}
缓存策略
// HTTP缓存
app.use('/static', express.static('public', {
maxAge: '1y',
immutable: true
}));
// Service Worker缓存
self.addEventListener('fetch', (event) => {
event.respondWith(
caches.match(event.request).then((response) => {
return response || fetch(event.request);
})
);
});
🤔 常见问题
Q1. 优化优先级?
A:
1. 用户感知(最重要)
- 初始加载速度(FCP、LCP)
- 交互响应性(FID)
- 视觉稳定性(CLS)
2. 资源大小
- 图片优化
- JavaScript包大小
测量 → 分析 → 改进 → 重复
Q2. 图片格式?
A:
WebP(广泛支持)
- 压缩率: ⭐⭐⭐⭐
- 支持: 大多数浏览器
JPEG(传统)
- 压缩率: ⭐⭐⭐
- 支持: 所有浏览器
推荐:
<picture>
<source type="image/webp" srcset="image.webp">
<img src="image.jpg" alt="...">
</picture>
🎬 总结
网站性能优化是用户体验的关键:
- 测量: 数据驱动方法
- 优先级: 先处理影响大的
- 渐进式: 逐步进行
- 持续: 定期监控和改进
快1秒,转化率提高7%! ⚡✨