Javascript setInterval在不到1毫秒的时间内执行?

Javascript setInterval在不到1毫秒的时间内执行?,javascript,Javascript,我有一个例子,比较了使用for-loop和使用setInerval的简单计数器循环的性能,执行时间差异巨大,如下所示: var i = 0; var i2 = 0; var int1 = null; console.time("for loop"); do{ i++; }while(i <= 1000); console.timeEnd("for loop"); function fnc(){ if(i2++ == 1000){ clearInterval(in

我有一个例子,比较了使用for-loop和使用setInerval的简单计数器循环的性能,执行时间差异巨大,如下所示:

var i = 0;
var i2 = 0;
var int1 = null;

console.time("for loop");
do{  
  i++;
}while(i <= 1000);
console.timeEnd("for loop"); 


function fnc(){
  if(i2++ == 1000){
    clearInterval(int1);
    console.timeEnd("interval loop");
  }
}

console.time("interval loop");
int1 = setInterval(fnc , 1);
var i=0;
VarI2=0;
var int1=null;
控制台。时间(“循环”);
做{
i++;

}而(i
setInterval
setTimeout
必须至少使用最小延迟。最小延迟,
DOM\u MIN\u TIMEOUT\u值
,是由指定的,并且在2010年及以后发布的浏览器中保持一致


在现代浏览器中,您可以使用
window.postMessage()
作为实现0毫秒超时的解决方法。

我已经看了你的问题5分钟多了,我不明白为什么有人想在本例中使用
setInterval
方法?或者我不明白这个问题?!问题是关于setInVal性能的底线,是否可能对于简单的1指令代码,是否有可能获得更好的执行时间,就像增加一个变量一样简单?希望现在更清楚。因为@Ismail在下面回答,最小延迟是4ms(您可以尝试将条件值加倍以查看效果)另外,使用interval的全部目的是在每次调用之前创建一个延迟,在逻辑上没有延迟的情况下使用它是没有意义的。是的,省略延迟不是重点,但是使用0.5ms或0.01ms作为延迟怎么样?也许可以获得比@Ismail Answer中所述4ms更好的性能,这也没有意义使用这大约是正常运行任何功能所需的时间。感谢您清除这一点,您知道是否有可能突破4ms延迟限制以下?不幸的是,您不能(据我所知)。请尝试
window.postMessage()
解决方法。谢谢@Ismail。