6

こんにちは、javascript でストップウォッチ ユーティリティをプログラミングしていますが、効率とオーバーヘッドについて質問があります。私がストップウォッチを作ることを考えた2つの方法があります:

1.開始日を保存し、その日から経過したミリ秒数を常に測定します。

2.整数を作成し、設定された間隔でその値をインクリメントします。

どれが最も効率的か知りたいです。また、オプション#2が非常に正確かどうかはわかりません。誰かがこれについて何か意見を持っていれば、それも素晴らしいでしょう.

4

2 に答える 2

3

オプション 2 は正確ではありません。特に、他の目的で追加の JavaScript を含むページがある場合はなおさらです。最初のアプローチに進みます。

于 2011-08-04T03:40:16.067 に答える
3

他の方もおっしゃっている通り、1号でどうぞ。1 秒 (または 1 分など) ごとに刻むクロックが必要な場合は、次の「刻み」までの時間を推定して、適切な時間の数ミリ秒後にsetTimeoutが呼び出されるようにする必要があります。

var d = new Date();
var interval = 1020 - d.getMilliseconds();
setTimeout(fn, interval);

そうすれば、システムがビジーであるために 1 つの呼び出しの実行が遅れた場合でも、次の呼び出しは次の 1 秒後に約 20ms 呼び出されるはずです。

于 2011-08-04T03:59:25.027 に答える