1

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

4

1 に答える 1

1

setInterval(…, 0)をすべきですか?ゼロ時間後に関数を繰り返すことはできません。常にわずかな遅延が発生します。実際、その遅延は最小値の 4 ミリ秒に標準化されています。たとえば、Opera 12 は 2 秒で (ほぼ) 500 までカウントします。これはこれと一致しますが、他のブラウザーでは遅延が大きくなる可能性があります (自由に選択できます)。

于 2013-02-15T13:42:37.457 に答える