0

setInterval によって毎秒起動されるこの関数を取得しました

function updatetimer() {
    if (timesec==0) {
        if (timemin==0) clearInterval(interval);
        else {
            timemin--;
            timesec=59;
        }
    }
    else timesec--;

    document.getElementById('timeleft').innerHTML=timemin+':'+timesec;
}

timeleft の innerHTML という名前の要素が毎秒新しい時刻で更新されることを期待できます。しかし、何らかの理由でそうでないか、場合によってはそうです。多くの setTimeout と DOM が進行しているため、他のすべてのコーディングと関係がある可能性があります。

これが想定される動作である場合は、これを行う別の方法を指摘してください。

前もってありがとう、ロセルカス

4

1 に答える 1

0

setTimeoutとを使用したイベント スケジューリングsetIntervalは、ベスト エフォートモデルです。間隔を 1000 ミリ秒ごとに実行するようにスケジュールすると、他のイベントが処理されている場合に実行が大幅に遅れる可能性があります。

これが、毎秒トリガーするクロックを実装するのが一般的に悪い考えである理由です。setIntervalあなたの時計は常に遅くなります。

于 2013-04-23T10:23:51.177 に答える