setTimeOut和setInterval工作原理

昨天看高性能javascript。看到了关于这俩的工作原理记录一下

setTimeout与setInterval使用方法基本相同,他们接受两个参数,第一个参数是需要执行的函数,第二个参数是执行的延迟时间。

以上都是我们熟悉的内容。

setTimeout在指定的延迟时间到达后 向ui队列添加一个任务,函数会立即执行。

并不是说在指定的Time后,ui一定会立马执行,而是在Time之后添加一个任务。通常setTimeout执行时的时间会比我们设定的Time要长。因为这个任务会等待队列中的其他任务执行完之后再执行。

对于setInterval,和setTimeout一样,会在指定间隔时间到之后向ui队列添加任务,但是有一点。如果队列中已经有同一个setInterval的任务存在,就不往里面添加setInterval的任务。
这也是这俩定时器的主要区别。

你可能感兴趣的:(setTimeOut和setInterval工作原理)