Javascript setInterval每秒执行100000000次
我想使用setInerval使增量达到每秒100000000Javascript setInterval每秒执行100000000次,javascript,setinterval,Javascript,Setinterval,我想使用setInerval使增量达到每秒100000000 (function counterIt(starting,speedPerSecond){ var speed=0; var intervalCount=1; if(speedPerSecond<100){ extraSpeed=1; speed=1000/speedPerSecond; }else{ extraSpeed=speedPerSeco
(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);
(功能计数器(启动、速度/秒){
var速度=0;
var区间数=1;
如果(1000){
间隔计数=超高速/1000;
extraSpeed=extraSpeed/间隔计数;
}
}
document.getElementById('counter')。innerHTML=开始;
对于(var间隔=0;间隔
浏览器中的增量速度是否有限制
是的,上面写着
如果嵌套级别大于5,并且超时时间小于4,则将超时时间增加到4
这意味着,在对处理程序进行5次调用之后,最小延迟为4毫秒
此外,请注意,使用带有小超时的setInterval
可能会很危险,因为如果处理程序运行的时间超过超时时间,则可能会冻结浏览器
取而代之的是,在处理程序的末尾考虑使用<代码> StimeTimeU/code >。< /P>浏览器每秒只画60帧(最多),所以你不必这样做。<代码> PASSMEST < /Code >,但我怀疑它是否快。根据JSPIF,我的服务器类机器可以在5亿2000万个OPS上增加一个数字(只是一行代码)。。如果执行更多操作,会大大降低速度,因此我怀疑您是否可以执行十亿次操作,尤其是在添加计时器和DOM开销后。interval参数的分辨率为毫秒,但在现代浏览器中最小值为5毫秒,在旧浏览器中更为明显。正如SLaks指出的,更新它比屏幕显示的速度快。此外,更新循环中的元素是没有意义的,浏览器在您退出该函数之前不会显示任何更改,因此您可以将其设置为最后一个值(添加
extraSpeed
)并跳过循环。您能看看这个吗,我认为问题在于渲染到屏幕中