我正在用 Java 创建一个 Web 应用程序,我需要在客户端浏览器上运行一个反向计时器。我计划将剩余时间从服务器发送到客户端,然后使用 javascript 勾选计时器。
我的问题是:
1. 时钟滴答率是否因不同系统而异?
2.有没有更好的方法来做到这一点?
问问题
1066 次
2 回答
2
时钟滴答率是否因不同系统而异?
是的,这是芯片组中使用的石英频率非常非常小的差异的结果。因此,如果你不时不时同步你的时钟,它们就会发散。
但是,如果你不是在设计卫星、弹道导弹遥控器或生命支持设备,你真的不应该在意。
有没有更好的方法来做到这一点?
是的,如果:
- 你的倒计时从一年或至少一个月开始倒计时,或者
- 您在时钟损坏/非常不准确的设备上运行您的客户端
您可以使用 aNTP protocol
来确保客户端和服务器时钟同步。有可用于JavaScript和Java的 NTP 库。
于 2012-06-22T13:19:42.060 回答
0
@npe -s 使用 NTP 的解决方案可以,但理论上是不正确的:
即使时钟完全同步,您也会将剩余时间发送给客户端。但是该消息需要在网络上传播,所以当客户收到它时,它就不再正确了。
更好的方法是将结束时间发送给客户端,这是一个绝对值,因此不受网络延迟的影响,并对客户端进行倒计时,计算那里的剩余时间。
也就是说,关于NTP的其他答案当然也是必要的
于 2012-06-27T10:51:06.093 回答