如果启用了同步,您的计算机时钟每周就会和Internet时间服务器进行一次同步。然而,如果您没有通过电缆调制解调器或DSL调制解调器与Internet保持连续连接的话,则自动同步可能不会总是发生。
具体来说有这么几种思路吧:
轮询,就像你说的那样不间断的和服务器通信,比如每秒甚至更短就发起一次请求获取服务器时间,然后利用Ajax的readyState来确定从请求发起到收到回复过去的时间不会太长。
WebSocket,利用WebSocket来实时通信。
服务器当然不会蹦掉……而且如果你要做的是一个倒计时那情况就更简单了,比如说在倒计时结束之前服务器对这些请求都不回复,让请求TimeOut,只有在倒计时结束后才回复给客户端,这样就能节省流量。
而且现在有很多这种免费的时间API服务。这里: www.timeapi.org/ 就是一个。这个API会直接返回UTC字符串。如果担心服务器压力的话用这种服务就好了。
另外,很重要的一点要提醒你。不论是什么数据,不论是不是从客户端上提取出来的,只要是在客户端上处理的就必须默认这个数据不可靠。不论你怎么从服务器获取时间,你都要认为这个时间很有可能已经被动过了。如果是抽奖这样的任务的话必须全程在服务器上处理。客户端代码关于数据的功能只有两个:向用户显示数据,从用户提取数据。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)