频繁的需要获取当前时间进行一些逻辑处理,但是用js获取本机时间,是存在bug的,那么就需要我们使用服务器时间,js可获取到服务器时间,原理是使用 ajax请求,返回的头部信息就含有服务器端的时间信息,获取到就可以了。
functionloadXMLDoc(){var xhr = null;if(window.XMLHttpRequest){
xhr= newwindow.XMLHttpRequest();
}else{ //ie
xhr = new ActiveObject("Microsoft")
}
xhr.open("GET","/ntsc.ac.cn",false)//false不可变
xhr.send(null);var date = xhr.getResponseHeader("Date");return newDate(date);
}
同样返回的是一个Date对象,xhr.open()必须使用同步;
无需填写请求链接;
open,send,和getResponseHeader 必须按序编写。
如需使用异步请求,可监听onreadystatechange状态来做不同的操作。
functiongetServerDate(){var xhr = null;if(window.XMLHttpRequest){
xhr= newwindow.XMLHttpRequest();
}else{ //ie
xhr = new ActiveObject("Microsoft")
}
xhr.open("GET","/",true);
xhr.send(null);
xhr.onreadystatechange=function(){vartime,date;if(xhr.readyState == 2){
time= xhr.getResponseHeader("Date");
date= newDate(time);
console.log(date);
}
}
}
使用异步不是很方便返回时间。
这里的readyState有四种状态,方便做不同处理:
0: 请求未初始化;
1: 服务器连接已建立;
2: 请求已接收;
3: 请求处理中
4: 请求已完成,且响应已就绪
失败状态,status的值:
200: "OK"
404: 未找到页面
动态显示
window.setInterval(loadXMLDoc, 1000);