/**
* @description 获取服务器时间(无需后台接口支持)
* @author jamieyan@tencent.com
* @param {Function} callback 成功回调
* @param {Function} error 失败回调
*/
function getServerTime(callback, error){
var xhr, dateStr;
if(window.XMLHttpRequest){
xhr = new XMLHttpRequest();
} else if(window.ActiveXObject){
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
xhr.onreadystatechange = function(){
// 一般ajax取readyState为4时处理,
// 因为这里只需要response header,所以可以早一些就得到结果
if(xhr.readyState === 3){
// 从response header里取得Date字段,不区分大小写
// 所有标准的HTTP服务都会返回Date
// 这里的Date便是服务器时间了
dateStr = xhr.getResponseHeader("Date");
// 处理回调
if (dateStr && ("function" === typeof callback)) {
callback(dateStr);
} else if ("function" === typeof error){
error(xhr);
}
// 时间都已经取到了,可以把ajax停掉
xhr.abort();
}
};
// 这里的路径要根据你的实际情况选择
// 因为有些服务器404返回会比较慢
// 尽量选择返回body较小,反应速度快的路径
xhr.open("GET", "/404.htm", true);
xhr.send(null);
}
// 测试
getServerTime(function(dateStr){
alert(dateStr);
}, function(){
alert("error");
});
前端获取服务器时间
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 购物项目一般有的商品会有限时抢购商品,限时抢购又根据当前时间来算有两个状态:1.预售(当前时间到开售时间之间的状态...
- 生活就是一面镜子,你对它笑,它就对你笑,你对它哭,它就对你哭。 如何看待生活,与你的主观世界有关:心中若是有阳光,...