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工作原理的主要内容,如果未能解决你的问题,请参考以下文章