如何获取服务器时间并每秒更新?

时间:2012-05-21 18:46:46

标签: php javascript jquery ajax date

我正在向特定服务器发出ajax请求并获得响应。我正在使用jsonp进行跨域请求。有没有办法让服务器时间到达我的请求。写php script或只做ajax请求会更好吗?假设我提出以下请求:

$.ajax({
        dataType: 'jsonp',
        data: 'jsonp=date',
        jsonp: 'jsonp_callback',                
        url: 'http://www.google.com',   
        success: function (data) {                  
        }
});

如何从此请求获得服务器时间?如有任何建议请帮忙。在获得时间之后,如果我每隔一秒使用setInterval方法更新时间,那么在特定时间更新时间之后制作相同的ajax请求将是一项代价高昂的操作或更好。我有实时数据随时间更新。

3 个答案:

答案 0 :(得分:2)

如果服务器没有明确提供给您,您将无法获得服务器的时间 您可以读取其HTTP标头,但这不是一件好事,因为标头可能不会每次都提供此信息,或者它们的格式可能不会始终相同。

另外,我没有看到每一秒都要求它。
问一次,计算它与你的时间之间的差异,然后你就去了:你得到了时间的差异,你可以在任何你想要的地方使用它。

请记住,即使您有时间,由于网络的延迟,您获得的时间与服务器的实时时间可能会有所不同。

答案 1 :(得分:1)

第1部分的答案是,您需要在响应中输出服务器时间,以便您的javascript读取它。对于第2部分,我会等待响应加载,然后使用setTimeout。使用setInterval意味着您可以在第一个响应返回之前触发两次ajax调用。

答案 2 :(得分:0)

建议服务器时间是指执行呼叫的脚本还是服务器上的实际时间?

对此有何需要,例如,您是否想要计算每5秒自动拨打电话之间的时间?

如果您只是从javascript获取区域设置时间并将其与ajax中的响应进行比较就足够了?

否则javascript无法获得服务器时间,因为它具有'客户端'性质。