Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 时间同步_Java_Javascript_Jakarta Ee_Time_Timer - Fatal编程技术网

Java 时间同步

Java 时间同步,java,javascript,jakarta-ee,time,timer,Java,Javascript,Jakarta Ee,Time,Timer,我正在用Java创建一个web应用程序,其中需要在客户端浏览器上运行一个反向计时器。我计划将剩余时间从服务器发送到客户端,然后使用javascript勾选计时器。 我的问题是: 1.时钟滴答声的频率是否随系统的不同而变化? 2.有没有更好的方法可以做到这一点?时钟滴答声的频率是否随不同的系统而变化? 是的,这是芯片组中使用的quatrz的频率差异非常非常小的结果。因此,如果你不时不时地同步你的时钟,它们就会发散 然而,如果你不是在设计卫星、弹道导弹遥控器或生命维持装置,你真的不应该在意 有没有更

我正在用Java创建一个web应用程序,其中需要在客户端浏览器上运行一个反向计时器。我计划将剩余时间从服务器发送到客户端,然后使用javascript勾选计时器。
我的问题是:
1.时钟滴答声的频率是否随系统的不同而变化?
2.有没有更好的方法可以做到这一点?

时钟滴答声的频率是否随不同的系统而变化? 是的,这是芯片组中使用的quatrz的频率差异非常非常小的结果。因此,如果你不时不时地同步你的时钟,它们就会发散

然而,如果你不是在设计卫星、弹道导弹遥控器或生命维持装置,你真的不应该在意

有没有更好的办法? 是,如果:

  • 您的反向时钟从一年或至少一个月开始倒计时,或者
  • 您正在一台时钟中断/非常不准确的设备上运行客户端

您可以使用
NTP协议
来确保客户端和服务器时钟同步。有可用于和的NTP库。

@npe-s解决方案可以使用NTP,但理论上不正确:

即使时钟完全同步,您也会向客户端发送剩余时间。但是这个消息需要在网上传播,所以当客户端收到它时,它就不再是正确的了

更好的方法是将结束时间发送到客户端,这是一个绝对值,因此不受网络延迟的影响,并在客户端上进行倒计时,计算剩余时间

也就是说,关于NTP的其他答案当然也是必要的