Javascript setInterval每秒执行1000000000

时间:2015-01-19 00:03:30

标签: javascript setinterval

我想使用setInerval使每秒增量高达1,000,000,000。

 (function counterIt(starting,speedPerSecond){
    var speed=0;
    var intervalCount=1;
    if(speedPerSecond<100){
        extraSpeed=1;
        speed=1000/speedPerSecond;
    }else{
        extraSpeed=speedPerSecond/1000;
        speed=1;
        if(extraSpeed>1000){
            intervalCount=extraSpeed/1000;
            extraSpeed=extraSpeed/intervalCount;
        }
    }
    document.getElementById('counter').innerHTML=starting;
    for(var interval=0;interval<intervalCount;interval++){
        setInterval(function(){
            for(var i=0;i<extraSpeed;i++){
                    document.getElementById('counter').innerHTML=parseInt(document.getElementById('counter').innerHTML)+1;
            }
        },speed);
    }
 })(0,1000000);

我想做的是。 间隔时间仅为1毫秒。  另一个是循环。(许多区间+循环)

浏览器的增量速度是否有限制? 或者有最好的方法吗?

尝试THIS FIDDLE

谢谢。

1 个答案:

答案 0 :(得分:0)

  

浏览器的增量速度是否有限制?

是。 spec

  

如果嵌套级别大于5,而超时小于4,则将超时增加到4。

这意味着,在5次调用处理程序之后,最小延迟为4毫秒。

此外,请注意,使用setInterval进行小超时会很危险,因为如果处理程序运行的时间超过超时,则可能会冻结浏览器。

相反,请考虑在处理程序的末尾使用setTimeout