日期:2014-05-16  浏览次数:20770 次

无依赖Ajax时钟

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title> 无依赖Ajax时钟 </title>
<style type="text/css">
#view-time {width:400px;height:50px;font-size:40px;font-family:Arial;text-align:center;}
</style>
</head>
<body>
<div id="view-time"></div>
<div id="log"></div>
<script type="text/javascript">
if (typeof XMLHttpRequest == 'undefined') {
    window.XMLHttpRequest = function() {
        var _ = ['Microsoft.XMLHTTP', 'Msxml2.XMLHTTP'];
        for (var i = 0, l = _.length; i < l; i++) {
            try {
                return new ActiveXObject(_[i]);
            } catch(e) {}
        }
    };
}

var serverDate = function(fn) {
    var B = new XMLHttpRequest();
    B.onreadystatechange = function() { B.readyState == 4 && fn(new Date(B.getResponseHeader('Date')))};
    B.open('HEAD', '/?_=' + (-new Date));
    B.send(null);
};

Date.prototype.format = function() {
    return this.getFullYear() + '-'
    + ('0' + (this.getMonth() + 1)).slice(-2) + '-'
    + ('0' + (this.getDate())).slice(-2) + ' '
    + ('0' + (this.getHours())).slice(-2) + ':'
    + ('0' + (this.getMinutes())).slice(-2) + ':'
    + ('0' + (this.getSeconds())).slice(-2);
};
serverDate(function(webTime) {
    var view = document.getElementById('view-time'), diff = webTime - new Date();
    view.innerHTML = webTime.format();
    setInterval(function() {
        view.innerHTML = (webTime.setTime(diff + new Date() * 1), webTime.format());
    }, 500);
});
</script>
</body>
</html>
?