Javascript獲取伺服器時間
Javascript是執行在客戶端的指令碼,我們一般都用new Date()來獲取當前時間,但是得到的是客戶端的時間,客戶端時間是隨意更改的,如果要做一個產品釋出倒數計時的話,客戶端時間一改,就要鬧笑話了。業務中需要用到伺服器時間的場景還有很多,那麼僅僅透過js怎麼拿到伺服器時間呢?事實上,只需要一個ajax請求就搞定,透過讀取XMLHttpRequest物件的響應頭裡面的時間戳得到當前伺服器時間!
原理就是這麼簡單:透過ajax向伺服器傳送請求,當伺服器收到請求後即可讀取響應頭的時間戳了,不管請求成功或失敗,都可以拿到時間戳。怎麼判斷伺服器收到請求了呢?當ajax請求傳送之後,XMLHttpRequest有5中狀態變化:
XMLHttpRequest.readyState值 表示的意思
-
0 未初始化,已經建立一個XMLHttpRequest物件,但是還沒有初始化
-
1 未傳送,程式碼已經呼叫了xmlhttprequest
open()方法並且xmlhttprequest已經準備好把一個請求傳送到伺服器 -
2 已傳送,已經透過send()方法把一個請求傳送到伺服器端,但是還沒有收到一個響應,可以讀取響應頭資訊了
-
3 正在接收,已經接收到http響應頭部資訊,但是訊息體部分還沒有完全接收完畢
- 4 已載入,響應已經被完全接收
透過監聽XMLHttpRequest的readystatechange事件來判斷當前處於哪種狀態,從表中可以看出,當XMLHttpRequest.readyState值為2時就可以讀取響應頭拿到我們要的時間戳了。程式碼如下:
到此,伺服器時間就取到了。其實響應頭裡面的資訊不僅僅有時間戳,可以使用xhr.getAllResponseHeaders()來獲取整個響應頭資訊,響應頭裡面還包括伺服器型別及版本號、請求的檔案型別及編碼等其他資訊(見下圖),都可以透過這種方式讀取。
(轉自古德God部落格園)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1762/viewspace-2798159/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 前端獲取伺服器時間前端伺服器
- 常見的Javascript獲取時間戳JavaScript時間戳
- JavaScript 獲取指定時間前幾天日期JavaScript
- 通過JQuery ajax獲取伺服器時間jQuery伺服器
- JavaScript怎麼獲取當前時間的年月日?JavaScript
- 獲取系統時間
- php 獲取時間差PHP
- 獲取當前時間
- c++ 獲取當前時間周初凌晨時間戳(獲取當前時間週一凌晨時間戳)C++時間戳
- Java 獲取本地時間與網路時間Java
- 獲取時間戳,幾個時間點的時間戳時間戳
- mybatis獲取當前時間MyBatis
- QT獲取日期,時間,星期QT
- C++11獲取時間C++
- Qt:獲取日期和時間QT
- JavaScript 獲取指定區間的數字JavaScript
- JavaScript基礎 釋出評論/刪除評論/獲取時間JavaScript
- PHP 獲取伺服器磁碟空間PHP伺服器
- Linux時間的獲取與使用Linux
- Qt 獲取程式編譯時間QT編譯
- js獲取當天時間戳JS時間戳
- Laravel 獲取 13 位時間戳Laravel時間戳
- 安卓啟動時間獲取安卓
- js獲取北京時間程式碼JS
- python 獲取時間的datetime庫Python
- c/c++獲取時間戳C++時間戳
- 低開銷獲取時間戳時間戳
- python 如何獲取當前時間Python
- 使用Python獲取DNS解析時間和響應時間PythonDNS
- MySQL 時間戳的 獲取 & 轉換為特定時間格式MySql時間戳
- JavaScript獲取兩個日期之間所有的日期JavaScript
- 獲取Unix 時間戳帶上毫秒時間戳
- curl 請求獲取響應時間
- 獲取當前時間往前的日期
- MySQL如何獲取binlog的開始時間和結束時間MySql
- php 根據給定字串時間獲取時區PHP字串
- JavaScript 獲取0-1之間的隨機數JavaScript隨機
- js獲取ISO8601規範時間JS