setTimeOut和setInterval工作原理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了setTimeOut和setInterval工作原理相关的知识,希望对你有一定的参考价值。

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

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

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

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

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

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

setTimeout和setInterval

JS定时器 传递参数
我在使用setTimeout()或setInterval()时,

setTimeout(addIcons(),3000);

setInterval(addIcons(),3000);
总是发现在页面加载的时候,它就直接执行函数,并没有在3秒之后加载。后来去查了一下,才发现问题出现在函数后面的小括号上。

setTimeout(addIcons,3000);

setInterval(addIcons,3000);

当代码改为上述所示时,即正常执行.

那如果我要给函数加参数怎么办呢?

其实,使用字符串形式可以达到想要的结果,如下所示

setTimeout("addIcons(dataAll)",3000);
当然还有其他的方法,请参考如何使用定时器settimeout、setInterval执行能传递参数的函数
---------------------
作者:xiaotingMa
来源:CSDN
原文:https://blog.csdn.net/mxt123456/article/details/71189086
版权声明:本文为博主原创文章,转载请附上博文链接!

以上是关于setTimeOut和setInterval工作原理的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript 函数 setTimeout() 和 setInterval() 有时不工作

setTimeout()和setInterval()的用法

setTimeout和setInterval

setTimeout和setInterval的区别

setTimeout和setInterval

settimeout和setInterval