上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.3.2 动画
前端所涉及的动画不仅有炫酷的UI特效,还包括滚动和触摸拖动等交互效果,而这一方面的性能要求就是流畅。众所周知,人眼具有视觉暂留特性,就是当光对视网膜所产生的视觉在光停止作用后,仍能保留一段时间。
研究表明这是由于视神经存在反应速度造成的,其值是1/24s,即当我们所见的物体移除后,该物体在我们眼中并不会立即消失,而会延续存在1/24s的时间。对动画来说,无论动画帧率有多高,最后我们仅能分辨其中的30帧,但越高的帧率会带来更好的流畅体验,因此动画要尽力达到60fps的帧率。
每一帧画面的生成都需要经过若干步骤,根据60fps帧率的计算,一帧图像的生成预算为16ms(1000ms/60≈16.66ms),除去浏览器绘制新帧的时间,留给执行代码的时间仅10ms左右。关于这个维度的具体优化策略,会在后面优化渲染过程的相关章节中详细介绍。