0

setTimeout 和 setInterval 有什么区别,比如在 UI 进程中长时间运行函数的时候?

  setTimeout(function(){
    /* Some long block of code... */
  }, 10);

  setInterval(function(){
    /* Some long block of code... */
  }, 10);

如果执行时间较长,则执行时间大于 setTimeout 或 setInterval 设置时间

4

2 回答 2

5

setTimeout 运行一次,当您使用

  1. 只想跑一次
  2. 或每次调用的运行时间是可变的,您需要按顺序进行调用

setInterval 永远运行,直到您调用 clearInterval 取消。

因此,对于长时间运行的过程,最好使用 setTimeout 然后让您的 setTimeout 处理程序再次调用 setTimeout 以保持循环运行。

编辑 setInterval 的问题是,如果运行时间超过 10 毫秒(在您的情况下),则可以放弃下一个呼叫。

于 2012-10-19T02:01:11.263 回答
0

要回答您的另一个问题,除了已经提到的问题之外没有区别,两者都具有相同的优先级。

于 2012-10-19T02:03:41.880 回答