抢购倒计时如何准确获取服务器的时间

阿酷| 阅读:318 发表时间:2017-07-21 11:47:44 前端技术

最近在做一个抢购的项目,需要js显示抢购倒计时,但是js拿到的实际是客户端的时间,而每一个客户端的时间极有可能是不一致的,这就会导致抢购机会不公平。那么如何准确获取服务器的时间呢?经过分析得到两个解决方案:

一、通过控制器获取服务器时间返回到前台正确显示(这是一种通用的方法); 

二、利用JS请求在 HTTP header 头里带一个Date的头部信息,用Ajax直接取头部信息里的Date就可获取服务器时间 。

ajax获取Date的方法:

$.ajax({
  type:'HEAD', 
  async: true,
  success:function(data, status, xhr){
    var time=xhr.getResponseHeader('Date');
  }
})

可能有人会问,ajax请求http这样的话 跟通过控制器获取服务器时间有啥区别么,同样要消耗一次请求,并且每次都会有服务器正文返回。 

是的,都是发起一次请求。但是呢:常见的Ajax请求方法为GET,POST而这两种请求都可能会返回正文体,而发HEAD头则只会返回对应的头信息,不会有正文,且只要javascript可以执行,就可以取当前域的地址作为请求地址,有一定的通用性,且避免了跨域的问题

本文由阿酷发表并编辑,转载此文章须经作者同意,并请附上出处及本页链接。如有侵权,请联系本站删除。