Java 时间同步
我正在用Java创建一个web应用程序,其中需要在客户端浏览器上运行一个反向计时器。我计划将剩余时间从服务器发送到客户端,然后使用javascript勾选计时器。Java 时间同步,java,javascript,jakarta-ee,time,timer,Java,Javascript,Jakarta Ee,Time,Timer,我正在用Java创建一个web应用程序,其中需要在客户端浏览器上运行一个反向计时器。我计划将剩余时间从服务器发送到客户端,然后使用javascript勾选计时器。 我的问题是: 1.时钟滴答声的频率是否随系统的不同而变化? 2.有没有更好的方法可以做到这一点?时钟滴答声的频率是否随不同的系统而变化? 是的,这是芯片组中使用的quatrz的频率差异非常非常小的结果。因此,如果你不时不时地同步你的时钟,它们就会发散 然而,如果你不是在设计卫星、弹道导弹遥控器或生命维持装置,你真的不应该在意 有没有更
我的问题是:
1.时钟滴答声的频率是否随系统的不同而变化?
2.有没有更好的方法可以做到这一点?时钟滴答声的频率是否随不同的系统而变化? 是的,这是芯片组中使用的quatrz的频率差异非常非常小的结果。因此,如果你不时不时地同步你的时钟,它们就会发散 然而,如果你不是在设计卫星、弹道导弹遥控器或生命维持装置,你真的不应该在意 有没有更好的办法? 是,如果:
- 您的反向时钟从一年或至少一个月开始倒计时,或者
- 您正在一台时钟中断/非常不准确的设备上运行客户端
您可以使用
NTP协议
来确保客户端和服务器时钟同步。有可用于和的NTP库。@npe-s解决方案可以使用NTP,但理论上不正确:
即使时钟完全同步,您也会向客户端发送剩余时间。但是这个消息需要在网上传播,所以当客户端收到它时,它就不再是正确的了
更好的方法是将结束时间发送到客户端,这是一个绝对值,因此不受网络延迟的影响,并在客户端上进行倒计时,计算剩余时间
也就是说,关于NTP的其他答案当然也是必要的