setInterval和setTimeout不匹配

时间:2013-02-15 12:13:13

标签: javascript timer match settimeout setinterval

我只是想知道为什么setInterval()setTimeout()不匹配时间结果?

语法:

setInterval(code,millisec,lang)
setTimeout(code,millisec,lang)

并且都使用毫秒..

为什么我总是随机i

所以我的测试功能看起来像......

var i = 0;

$("button").click(function() {

  var run = setInterval(function(){
    i++; $("code").html(i);
  },0);

  setTimeout(function(){
    clearInterval(run);
    i = 0;
  },2000);


});

为什么结果不显示 2000 ?或者我误解了什么?

如果分钟。 setInterval()的值为 4ms 为什么我的结果不一样?

游乐场: http://jsbin.com/ezeliz/1/edit

1 个答案:

答案 0 :(得分:1)

setInterval(…, 0)应该做什么?它在零时间后不能重复该功能,总会有一个小的延迟。实际上,这种延迟甚至标准化为minimum value 4ms。例如,Opera 12在2s内计数(接近)到500,与之匹配,其他浏览器可能有更大的延迟(they are free to choose one)。