本段代码实现了同步和异步获取服务器时间的放式,真正做到不会侵入服务器代码。主要原理是读取响应头部的Date值,即为服务器返回响应的时间(由服务器端生成),故可以以字符串格式取出,并可以转换为Date对象,以便后续操作。
对于获取服务器时间提供了同步和异步两种放式调用,可根据实际需要选择
jQuery.extend({
//获取系统时间
getSystemTime: function(){
return new Date();
},
//异步获取服务器时间
getServerTime_async: function(success){
$.ajax({
data: {_:Math.random()},
complete: function(xhr){
var str = xhr.getResponseHeader("Date");
var now = null;
if(str != null)
now = new Date(str);
if($.isFunction(success))
success(now);
}
});
},
//同步获取服务器时间
getServerTime: function(){
var xhr = $.ajax({
async: false,
data: {_:Math.random()}
});
var str = xhr.getResponseHeader("Date");
if(str == null)
return null;
return new Date(str);
}
});
//DEMO:
console.log("$.getSystemTime() Result: " + $.getSystemTime());
console.log("$.getServerTime() Result: " + $.getServerTime());
$.getServerTime_async(function(t){
console.log("$.getServerTime_async()Result: " + t);
});