こんにちは、javascript でストップウォッチ ユーティリティをプログラミングしていますが、効率とオーバーヘッドについて質問があります。私がストップウォッチを作ることを考えた2つの方法があります:
1.開始日を保存し、その日から経過したミリ秒数を常に測定します。
2.整数を作成し、設定された間隔でその値をインクリメントします。
どれが最も効率的か知りたいです。また、オプション#2が非常に正確かどうかはわかりません。誰かがこれについて何か意見を持っていれば、それも素晴らしいでしょう.
こんにちは、javascript でストップウォッチ ユーティリティをプログラミングしていますが、効率とオーバーヘッドについて質問があります。私がストップウォッチを作ることを考えた2つの方法があります:
1.開始日を保存し、その日から経過したミリ秒数を常に測定します。
2.整数を作成し、設定された間隔でその値をインクリメントします。
どれが最も効率的か知りたいです。また、オプション#2が非常に正確かどうかはわかりません。誰かがこれについて何か意見を持っていれば、それも素晴らしいでしょう.
オプション 2 は正確ではありません。特に、他の目的で追加の JavaScript を含むページがある場合はなおさらです。最初のアプローチに進みます。
他の方もおっしゃっている通り、1号でどうぞ。1 秒 (または 1 分など) ごとに刻むクロックが必要な場合は、次の「刻み」までの時間を推定して、適切な時間の数ミリ秒後にsetTimeoutが呼び出されるようにする必要があります。
var d = new Date();
var interval = 1020 - d.getMilliseconds();
setTimeout(fn, interval);
そうすれば、システムがビジーであるために 1 つの呼び出しの実行が遅れた場合でも、次の呼び出しは次の 1 秒後に約 20ms 呼び出されるはずです。