浏览器的 16ms 渲染帧

渲染帧是指浏览器一次完整绘制过程,帧之间的时间间隔是DOM视图更新的最小间隔
由于主流的屏幕刷新率都在60hz,因此渲染一帧的事件就必须控制在16.7ms内才能保证不掉帧。也就是说每一次渲染都要在 16.7ms 内页面才够流畅不会有卡顿感。 这段时间内浏览器需要完成如下事情:

  • js执行:脚本造成了需要重绘的改动,比如增删 DOM、请求动画等
  • 样式计算
  • layout
  • paint:各层分别进行绘制(比如 3D 动画)
  • 合成:合成各层渲染结果。

一个帧内要做这么多事情……如果js执行时间过长超过16.7ms,就会block住,那么就会丢掉一次帧的绘制。
一般一个帧内的多次DOM改动会被合并渲染。


window.requestAnimationFrame用于在下一个渲染帧之前执行一个回调函数。
可以用来做逐帧动画,这会使你的动画函数先于浏览器重绘动作。通常来说,被调用的频率就是60hz。

参考文章
浏览器的 16ms 渲染帧

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值