0

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

4

2 回答 2

2

时钟滴答率是否因不同系统而异?

是的,这是芯片组中使用的石英频率非常非常小的差异的结果。因此,如果你不时不时同步你的时钟,它们就会发散。

但是,如果你不是在设计卫星、弹道导弹遥控器或生命支持设备,你真的不应该在意。

有没有更好的方法来做到这一点?

是的,如果:

  • 你的倒计时从一年或至少一个月开始倒计时,或者
  • 您在时钟损坏/非常不准确的设备上运行您的客户端

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

于 2012-06-22T13:19:42.060 回答
0

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

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

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

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

于 2012-06-27T10:51:06.093 回答