因为全部是静态HTML.但是想动态显示服务器上的时间.
下面是根据服务器与客户端得出时间差.然后计算显示服务器时间.
可是放在欧美的空间上在IE里面.要3-5分钟才能显示时间.
放在国内的空间上没有出现过这种问题的.
麻烦各位帮忙看一下.困扰了几天.
或者有什么更好的方法在静态HTML中显示服务器的时间.
要减少请求服务器的次数.谢谢了.
var XmlHttp;//创建XMLHTTP对象
if(window.XMLHttpRequest) {//表示当前浏览器不是ie,如chrome,firefox
   XmlHttp = new XMLHttpRequest();
} else if (window.ActiveXObject) {//表示当前浏览器是IE
   XmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}XmlHttp.open("HEAD","http://localhost",false);//从哪个服务器上获取时间
XmlHttp.send();                                      //连接服务器
var offset = Date.parse(XmlHttp.getResponseHeader("Date"));//获取标头中的时间
offset -= (new Date).getTime();                                                                                                                 //获取本地时间与服务器时间的间隔
function ShowTime()                                       //显示时间的方法
{
var d = new Date;                                         //获取当前时间                                                                                                                                                         
d.setTime(d.getTime()+offset);                           //通过服务器和本地的时间间隔获取当前服务器时间                                                   
var ddd = new Date();
document.getElementById("webtime").innerHTML=d.format('hh:mm dd/MM/yyyy');     //显示服务器时间
}
setInterval("ShowTime()", "1000");Date.prototype.format = function(format)
{
    var o =
    {
        "M+" : this.getMonth()+1, //month
        "d+" : this.getDate(),    //day
        "h+" : this.getHours(),   //hour
        "m+" : this.getMinutes(), //minute
        "s+" : this.getSeconds(), //second
        "q+" : Math.floor((this.getMonth()+3)/3),  //quarter
        "S" : this.getMilliseconds() //millisecond
    }
    if(/(y+)/.test(format))
    format=format.replace(RegExp.$1,(this.getFullYear()+"").substr(4 - RegExp.$1.length));
    for(var k in o)
    if(new RegExp("("+ k +")").test(format))
    format = format.replace(RegExp.$1,RegExp.$1.length==1 ? o[k] : ("00"+ o[k]).substr((""+ o[k]).length));
    return format;
}

解决方案 »

  1.   

    alert()发现在
    XmlHttp.send(); //连接服务器
    var offset = Date.parse(XmlHttp.getResponseHeader("Date"));//获取标头中的时间
    这两句之间用了大概3分钟左右是国外的空间有问题.国内的空间好像不会出这种缓慢的问题.
    不知道是代码问题还是与服务器有关
      

  2.   

    <script   runat=server   language=javascript>   
      var   a   =   new   Date()   
      a   =   a.getFullYear()   +   ""   +   (a.getMonth()   +1)   +   ""+a.getDate()   +   ""+a.getHours()   +   ""+a.getMinutes()   
      Response.Write(a)   
      </script>
    在服务器的启动时
      

  3.   

    <div id="serverTime"></div>
    <script type="text/javascript">
        if (document.all) {
            window.XMLHttpRequest = function() {
                var $ = ['Microsoft.XMLHTTP', 'Msxml2.XMLHTTP'];
                for (var i = 0; i < $.length; i++) { try { return new ActiveXObject($[i]) } catch (e) { } };
            };
        }
        webDate = function(fn) {
            var QQ = new XMLHttpRequest();
            QQ.onreadystatechange = function() { QQ.readyState == 4 && (fn(new Date(QQ.getResponseHeader('Date')))) };
            QQ.open('HEAD', '/?_=' + (-new Date));
            QQ.send(null);
        }
        time2String = function(t) {
            with (t) return [getFullYear(), '-'
    , ('0' + (getMonth() + 1)).slice(-2), '-'
    , ('0' + getDate()).slice(-2), ' '
    , ('0' + getHours()).slice(-2), ':'
    , ('0' + getMinutes()).slice(-2), ':'
    , ('0' + getSeconds()).slice(-2)].join('')
        }
        setInterval(function() {
            webDate(function(webTime) {
                document.getElementById('serverTime').innerHTML = time2String(webTime);
            })
        }, 1000)
    </script>
    果果写的