假设一个web页面为60fps(fps意为frame per second),这意为着这个页面每秒钟能重新渲染60次,60帧/1000ms换算过来约为16.6ms/帧。

  requestAnimationFrame的意义正在于此,此时你使用requestAnimationFrame等价于

  

1 setTimeout(()=>{
2    //..... 
3 },16.6)

  看见了吗,这家伙是个异步操作,它接收一个函数作为参数,并延时执行它,至于延后多少,这个函数已经根据页面的fps帮你计算好了,每帧执行一次函数,所以不会出现掉帧。

  这和setTimeout的递归调用是一个意思。

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-02-16
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-12-02
  • 2022-01-11
  • 2021-09-27
相关资源
相似解决方案