0

クライアントブラウザでリバースタイマーを実行する必要があるJavaでWebアプリケーションを作成しています。サーバーからクライアントに残り時間を送信し、javascript を使用してタイマーを刻む予定です。
私の質問は次のとおり
です。 1. クロック ティック レートはシステムによって異なりますか?
2.これを行うためのより良い方法はありますか?

4

2 に答える 2

2

クロック ティック レートはシステムによって異なりますか?

はい、それはチップセットで使用されるクオーツの周波数の本当に、本当に小さな違いの結果です. そのため、時々クロックを同期させないと、ずれてしまいます。

ただし、衛星、弾道ミサイルのリモコン、または生命維持装置を設計していない場合は、気にする必要はありません。

これを行うより良い方法はありますか?

はい、次の場合:

  • 逆時計が 1 年または少なくとも1 か月からカウントダウンする、または
  • 壊れた/本当に不正確なクロックを持つデバイスでクライアントを実行しています

を使用しNTP protocolて、クライアントとサーバーのクロックが同期していることを確認できます。JavaScriptおよびJavaで使用できる NTP ライブラリがあります。

于 2012-06-22T13:19:42.060 に答える
0

NTP を使用した @npe -s ソリューションで十分ですが、理論的には正しくありません。

クロックが完全に同期されている場合でも、クライアントに残りの時間を送信します。しかし、そのメッセージはネット上を移動する必要があるため、クライアントがそれを受け取るまでには、もはや正しくありません。

より良いアプローチは、クライアントに終了時間を送信することです。これは絶対値であるため、ネットワークラグの影響を受けず、クライアントでカウントダウンを行い、そこで残り時間を計算します。

とはいえ、NTPに関する他の回答ももちろん必要です

于 2012-06-27T10:51:06.093 に答える