梳理整理一下前端性能优化常见思路与技巧
性能优化的目的是让用户觉得你的网站访问起来速度快,即使实际速度可能并没有变,只是感觉变快了。因此优化可以从两个方向,即真的快和感觉变快了。
真的快
真的快就是让网站资源以最快速度到达用户浏览器,可以按照下面的思路和方法去优化。
传输的内容体积要小
- 图片要压缩
- 图片根据支持格式选择体积更小的格式
- css,js内容压缩
- 服务端开启Gzip,在传输数据之前再次压缩
传输的内容数量要少
- 图片图标合并(css sprite),svg图标合并(svg sprite)
- css,js文件打包合并
网速要足够快
- 服务器出口带宽够
- 南北差异,不同地方部署不同服务器
- 静态资源放CDN
服务器响应要及时
- 接口响应速度要快(数据库优化,查询优化,算法优化)
- cpu,内存,硬盘读写不要成为瓶颈,多加机器
- 重要页面静态化。服务端提前渲染生成静态页面,用户访问时直接返回
能重复利用的资源要利用好
- 服务器设置合适的静态资源缓存时间
- 前端文件打包时做合理的分块,让公共资源缓存后能被多个页面复用
暂时不需要的资源先不要
- 图片懒加载
- 功能,模块,组件按需加载
将来需要的资源抽空先拿到
- DNS 预解析
- 预连接
- 预获取
- 预渲染
体验快
体验快就是网站交互是流畅的,舒适的。
滚动页面不要有迟滞感
- 短时间连续大量触发操作要节流
常见操作不要拖泥带水
- DOM操作不能过于频繁
- 不要出现内存泄漏
- 优化复杂算法
动画不要卡顿
- 多用CSS动画,少用JS动画
- 开启硬件加速
- 动画或过渡执行时间不要太久
臆想的优化不是优化,无明显成效的优化不是优化。浏览器的性能已经足够快,不要因为“过渡优化”牺牲代码的可读性
先做简单见效快的优化,再做复杂见效慢的优化。