思路:采用异步请求的方式,发送请求,获取HTTP请求的response头,头部中包含时间,使用getResponseHeader('Date')即可。

注意:以下任何一种方法都不精确,因为请求包的传输时间依赖于网络状况,在较差网络下会有误差。方法三允许人工调整误差时间。

1.方法一

通过发送GET请求同步获取时间

var xmlHttp = new XMLHttpRequest();

xmlHttp.open("GET", location.href, false); //同步
xmlHttp.setRequestHeader("Range", "bytes=-1");
xmlHttp.send(null);
severtime=new Date(xmlHttp.getResponseHeader("Date"));

2.方法二

通过发送HEAD请求异步获取时间。

var xhr = new XMLHttpRequest();
/*if( !xhr ){
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}*/
xhr.open("HEAD",location.href,true); //异步
xhr.onreadystatechange=function(){
if( xhr.readyState == 4 && xhr.status == 200 ){
alert(xhr.getResponseHeader("Date"));
}
}
xhr.send(null);

这种方法依赖服务器配置,大多数服务器出于安全考虑会禁止这种HEAD请求,返回405错误。在控制台内可看到报错,但是不影响结果嘛。

3.方法三 插件

在github上查到一个写好的比较完整的插件,可以配置选择同步或者异步方式。该插件采用GET方式。

https://github.com/zmofei/sysDate

最新文章

  1. 二.TimesTen原理及应用场景
  2. C# 实现软件的重启
  3. 基于HTML5快速搭建3D机房设备面板
  4. try catch finally return之间的关系
  5. Android开发:碎片Fragment完全解析fragment_main.xml/activity_main.xml(转)
  6. libvirt API管理hypervisors
  7. 实时消息传输协议(RTMP)详解
  8. Lua的数学函数
  9. VirboxLM许可管理平台,一站式软件保护解决方案
  10. C 标识符, 数据存储形式(原码,反码,补码)
  11. HBuilder使用夜神模拟器调试Android应用
  12. 006-Python函数
  13. 博客 first
  14. MongoDB之Limit选取Skip跳过Sort排序
  15. Security1:登录和用户
  16. 微信小程序 --- 获取设备信息
  17. 如何查看MySql的BLOB内容
  18. easyform表单校验插件改版源码
  19. jenkins SSH登录 Git配置(通过eclipse生成SSH 密钥)
  20. 如何在IIS中承载WCF NetTcpBinding 服务

热门文章

  1. JDBC编程
  2. Java字符串常量池
  3. hibernate学习(5)——多对多关系映射
  4. C#程序以管理员权限运行
  5. Json 学习
  6. charles抓包工具分享
  7. 一个js获取数组下标的函数
  8. 第四篇:白话tornado源码之褪去模板外衣的前戏
  9. 【转载】如何破解受保护的excel密码
  10. Java语言程序设计(基础篇) 第三章 选择