不知不觉,春节就过完了,还没来得及好好享受就没了。好想来一场说走就走的旅行??,不吹水了,直接进入正题。
最近在做一个需求,发现了薄弱的地方,趁这个好机会深入了解一下,拓宽一下视野~
众所周知,网页不仅应该被快速加载,同时还应该流畅运行,比如快速响应的交互,如丝般顺滑的动画……
在实际开发中如何做到上面所说的效果呢?
1. 确认渲染性能的分析标准
2. 准备尺子去衡量渲染性能标准
3. 对耗时多的地方进行优化
我们可以粗略的得到下面的优化目标
第一个是 首屏呈现时间,网上的资料已经非常非常多了,压缩代码,使用webp图片,使用sprite,按需加载,“直出”,CDN……
第二个是 16ms 优化,本篇重点讲16ms的优化。
一. 浏览器渲染原理介绍
大多数设备的刷新频率是60次/秒,(1000/60 = 16.6ms)也就说是浏览器对每一帧画面的渲染工作要在16ms内完成,超出这个时间,页面的渲染就会出现卡顿现象,影响用户体验。
这就是上图中的<16ms。浏览器在一帧里面,会做以下这些动作。 当然,有些步骤(比如 layout,paint)是可以省略的。