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