ajax获取服务器当前时间

本文介绍了一种使用Ajax从服务器响应头中获取格林威治时间的具体方法,并提供了JavaScript代码实现。同时对比了通过jQuery AJAX方法存在的缓存问题。
通过ajax获取response header 上的date值,注意时区,在chrome 开发工具header中看到的均为格林威治时间,比北京时间小8个小时,获取的时区与服务器端设置有关系。
推荐下面方法:
[javascript]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. //从response header中获取服务器当前时间,不存在有缓存时的问题  
  2. function getServerTime(){  
  3.      var xmlHttp = false;  
  4.      try {  
  5.        xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");  
  6.      } catch (e) {  
  7.        try {  
  8.           xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");  
  9.        } catch (e2) {  
  10.           xmlHttp = false;  
  11.        }  
  12.      }  
  13.       
  14.      if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {  
  15.        xmlHttp = new XMLHttpRequest();  
  16.      }  
  17.       
  18.      xmlHttp.open("GET", window.location.href.toString(), false);  
  19.      xmlHttp.setRequestHeader("Range""bytes=-1");  
  20.      xmlHttp.send(null);  
  21.       
  22.      var severtime=new Date(xmlHttp.getResponseHeader("Date"));  
  23.      return severtime  
  24. }  

另外,通过jquery的ajax方法获取,存在缓存不更新时间的问题。
htmlobj=$.ajax({url:"a.txt",async:false});
 $("#myDiv").html(htmlobj.responseText);
responseText:返回的内容
async:false指有返回值后才执行后面的代码(同步线程)
htmlobj.getResponseHeader("Date")
取得response header中时间(格林威治时间,比北京时间慢8小时),
有缓存时,IE下取值为null,chrome时间不会更新
firefox频繁请求,时间上会有延迟,在某一时间段内时间不会更新(距前一次刷新约一分钟的样子)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值