smd*_*ger 19 javascript serverside-javascript
我正在建立一个有时间和价格的网站.我最关心的是同步时间,以便在所有客户端尽可能准确.
目前,我正在向客户端发送剩余的毫秒数,然后用于为倒数计时器提供燃料,但由于传输和渲染延迟,即使在同一台计算机上有2个浏览器,也可能会关闭几秒钟.
有没有办法同步客户端的javascript时间和服务器时间,或者我只是要处理这种轻微的延迟?
如果只有一种方法可以准确地测量发送数据的服务器与客户端接收和呈现数据之间的时差.
til*_*ryj 23
即使服务器和客户端上的时间不同,时间变化的速率也应基本相同.我会将剩余时间发送到客户端,然后让客户端将该时间添加到当前时间,然后让客户端计算倒计时.例如:
var timeRemaining = [rendered on page load or queried by ajax]; // in milliseconds
var endTime = new Date(new Date().getTime() + timeRemaining);
// Put this in a setInterval, or however you currently handle it
var countdown = (endTime.getTime() - new Date().getTime()) / 1000;
Run Code Online (Sandbox Code Playgroud)
Dav*_*aun 15
有一种方法可以将客户端与服务器的时间同步.我写了一个这样做的库:ServerDate.
这是自述文件的一部分:
您可以ServerDate像使用Date函数或其中一个实例一样使用,例如:
> ServerDate()
"Mon Aug 13 2012 20:26:34 GMT-0300 (ART)"
> ServerDate.now()
1344900478753
> ServerDate.getMilliseconds()
22
Run Code Online (Sandbox Code Playgroud)
还有一种新方法可以获得ServerDate估计服务器时钟的精度(以毫秒为单位):
> ServerDate.toLocaleString() + " ± " + ServerDate.getPrecision() + " ms"
"Tue Aug 14 01:01:49 2012 ± 108 ms"
Run Code Online (Sandbox Code Playgroud)
您可以看到服务器的时钟和浏览器时钟之间的差异,以毫秒为单位:
> ServerDate - new Date()
39
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
35489 次 |
| 最近记录: |