国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JavaScript獲取服務器時間的方法詳解

2019-11-19 18:34:34
字體:
來源:轉載
供稿:網(wǎng)友

本文實例講述了JavaScript獲取服務器時間的方法。分享給大家供大家參考,具體如下:

Javascript是運行在客戶端的腳本,我們一般都用new Date()來獲取當前時間,但是得到的是客戶端的時間,客戶端時間是隨意更改的,如果要做一個產(chǎn)品發(fā)布倒計時的話,客戶端時間一改,就要鬧笑話了。業(yè)務中需要用到服務器時間的場景還有很多,那么僅僅通過js怎么拿到服務器時間呢?事實上,只需要一個ajax請求就搞定,通過讀取XMLHttpRequest對象的響應頭里面的時間戳得到當前服務器時間!

原理就是這么簡單:通過ajax向服務器發(fā)送請求,當服務器收到請求后即可讀取響應頭的時間戳了,不管請求成功或失敗,都可以拿到時間戳。怎么判斷服務器收到請求了呢?當ajax請求發(fā)送之后,XMLHttpRequest有5中狀態(tài)變化:

XMLHttpRequest.readyState值 表示的意思
0 未初始化,已經(jīng)創(chuàng)建一個XMLHttpRequest對象,但是還沒有初始化
1 未發(fā)送,代碼已經(jīng)調(diào)用了xmlhttprequest open()方法并且xmlhttprequest已經(jīng)準備好把一個請求發(fā)送到服務器
2 已發(fā)送,已經(jīng)通過send()方法把一個請求發(fā)送到服務器端,但是還沒有收到一個響應,可以讀取響應頭信息了
3 正在接收,已經(jīng)接收到http響應頭部信息,但是消息體部分還沒有完全接收完畢
4 已加載,響應已經(jīng)被完全接收

 

通過監(jiān)聽XMLHttpRequest的readystatechange事件來判斷當前處于哪種狀態(tài),從表中可以看出,當XMLHttpRequest.readyState值為2時就可以讀取響應頭拿到我們要的時間戳了。代碼如下:

<p id="time"></p><script>ajax() function ajax(option){ var xhr = null; if(window.XMLHttpRequest){  xhr = new window.XMLHttpRequest(); }else{ // ie  xhr = new ActiveObject("Microsoft") } // 通過get的方式請求當前文件 xhr.open("get","/"); xhr.send(null); // 監(jiān)聽請求狀態(tài)變化 xhr.onreadystatechange = function(){  var time = null,   curDate = null;  if(xhr.readyState===2){  // 獲取響應頭里的時間戳  time = xhr.getResponseHeader("Date");  console.log(xhr.getAllResponseHeaders())  curDate = new Date(time);  document.getElementById("time").innerHTML = "服務器時間是:"+curDate.getFullYear()+"-"+(curDate.getMonth()+1)+"-"+curDate.getDate()+" "+curDate.getHours()+":"+curDate.getMinutes()+":"+curDate.getSeconds();  } } }</script>

到此,服務器時間就取到了。其實響應頭里面的信息不僅僅有時間戳,可以使用xhr.getAllResponseHeaders()來獲取整個響應頭信息,響應頭里面還包括服務器類型及版本號、請求的文件類型及編碼等其他信息(見下圖一),都可以通過這種方式讀取。為了證明獲取的確實是服務器時間,我用手機測試了一下(見下圖二),當前北京時間是2015年4月20日21:59,PC機時間我調(diào)成了2015年2月1日 21:16

圖一

 

圖二

 

更多關于JavaScript相關內(nèi)容感興趣的讀者可查看本站專題:《JavaScript時間與日期操作技巧總結》、《JavaScript切換特效與技巧總結》、《JavaScript查找算法技巧總結》、《JavaScript動畫特效與技巧匯總》、《JavaScript錯誤與調(diào)試技巧總結》、《JavaScript數(shù)據(jù)結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript數(shù)學運算用法總結

希望本文所述對大家JavaScript程序設計有所幫助。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 都江堰市| 会泽县| 阿瓦提县| 大港区| 玉林市| 布尔津县| 灵璧县| 奈曼旗| 青浦区| 诸暨市| 宝坻区| 武定县| 陈巴尔虎旗| 秭归县| 中卫市| 丹阳市| 盐池县| 扬州市| 开阳县| 凤庆县| 天柱县| 高州市| 西宁市| 五家渠市| 巴彦淖尔市| 工布江达县| 南开区| 资中县| 金溪县| 额尔古纳市| 海林市| 平乡县| 汉寿县| 沿河| 郁南县| 海晏县| 奉节县| 岳阳县| 西平县| 鲁甸县| 乾安县|