setTimeout的时间限制为什么是500不是1000呢????
setTimeout的时间限制为什么是500不是1000呢????
setTimeout的时间限制为什么是500不是1000呢????
2015-10-10
你要了解:
1、setTimeout(fun,500) 执行过程:等待500毫秒,执行fun程序;
2、function fun(){
xxxxxx;
xxxxxx;
xxxxxx;
setTimeout(fun,500);
}
执行过程:先执行 fun 内部的 xxxxxx(需要执行时间);然后当执行到 setTimeout 时,现在开始等待500毫秒。500毫秒之后开始执行fun函数,此时还是先执行 xxxxxx(注意此时执行这些命令同样是需要时间的,假设需要y毫秒),然后执行到setTimeout,此时开始再等待500毫秒之后执行fun函数。
总的程序执行时间可以这么算:y+500+y+500+y+500+...... ;
可以看出每次执行setTimeout,都会有执行xxxxxx;消耗的y时间,如果把500改成1000,那么当y累计到一定程度(y++ >= 1000ms),就会一次性跳过2秒,造成程序执行不够精确;
举报