RequestAnimationFrame polyfill 中 1000/60 的意义是什么

Ale*_*nik 0 javascript css

我刚刚浏览 vivus.js 的源代码,发现了以下代码行:

requestAnimFrame = (function () {
  return (
    window.requestAnimationFrame       ||
    window.webkitRequestAnimationFrame ||
    window.mozRequestAnimationFrame    ||
    window.oRequestAnimationFrame      ||
    window.msRequestAnimationFrame     ||
    function(/* function */ callback){
      return window.setTimeout(callback, 1000 / 60);
    }
  );
})();
Run Code Online (Sandbox Code Playgroud)

现在 ofcource 我运行最新版本的 chrome,第一个条件是 true,并且是实际返回的内容,但我真正关心的是最后一个条件 IE

function(/* function */ callback){
    return window.setTimeout(callback, 1000 / 60);
}
Run Code Online (Sandbox Code Playgroud)

为什么1000 / 60?我明白为什么使用 setTimeout,但是 1000/60 到底有什么作用?有人能解释一下这部分吗?

PS我知道这是一个数学问题,但由于它涉及大量代码,所以我不得不发布。

谢谢。

Ben*_*Ben 5

每秒 60 帧是大多数人认为动画流畅的最小帧速率。

因此每 60 毫秒(1 秒)运行一次。