我有这个例子比较使用for循环和使用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);
输出
请参阅演示:http://jsbin.com/jusiqilayi/edit?js,output
我想知道是否可以使用setInterval执行一个时间小于1ms的函数?或者有没有办法使用setInterval?
为给定的示例实现更好的性能答案 0 :(得分:5)
setInterval
和setTimeout
被迫至少使用最小延迟。最小延迟DOM_MIN_TIMEOUT_VALUE
为4毫秒,由HTML5 spec指定,并且在2010年及之后发布的浏览器中保持一致。
在现代浏览器中,您可以使用window.postMessage()
作为解决方法,将{0}超时实现为described here。