1

タイミングイベントについて読みました。私は混乱していsetTimeoutます:500ミリ秒ごとに実行されているW3Schoolsの例があります。私はそれが一度だけ機能することについて読みましsetTimeoutた。リンク

<head>
  <script>
    function startTime() {
      var today=new Date();
      var h=today.getHours();
      var m=today.getMinutes();
      var s=today.getSeconds();
      document.getElementById('txt').innerHTML=h+":"+m+":"+s;
      setTimeout(function(){startTime()},500);
    }
  </script>
</head>
<body onload="startTime()">
  <div id="txt"></div>
</body>
4

2 に答える 2

6

この関数はタイマーを内部的にリセットします。

setTimeout(function(){startTime()},500);

実行するたびに、最後に行うことは、別の反復をスケジュールすることです。

于 2012-12-24T14:09:32.247 に答える
1

setTimeout 関数は 1 回だけ機能します。コードを調べてください。startTime 関数内で、500 ミリ秒後に同じ関数を再度呼び出しています。一度だけ動作させたい場合は、再帰的に呼び出さないでください。または、しばらく繰り返す場合は、代わりに setInterval を使用します。この関数は、いつでも停止できる ID を返します。

于 2012-12-24T14:13:33.920 に答える