2012-05-21 45 views
0

我正在向特定服務器發出ajax請求並獲取響應。我正在做跨域請求,所以使用jsonp。有沒有辦法讓我提出請求的服務器時間。寫php script還是隻做ajax請求會更好?假設如果我提出以下請求:如何獲得服務器時間和每秒更新?

$.ajax({ 
     dataType: 'jsonp', 
     data: 'jsonp=date', 
     jsonp: 'jsonp_callback',     
     url: 'http://www.google.com', 
     success: function (data) {     
     } 
}); 

如何從此請求獲取服務器時間?如果有任何建議,請幫助。如果我使用setInterval方法來更新每秒的時間,那麼在獲得時間之後,如果在特定時間後更新時間,執行相同的ajax請求會花費更高的代價。我有實時數據隨時間更新。

回答

2

如果服務器沒有明確提供給您,您將無法獲得服務器的時間。
您可以閱讀它的HTTP標題,但這不是一件好事,因爲標題可能不會每次都提供此信息,或者它們的格式可能始終不一樣。

此外,我沒有看到每秒鐘都在問這個問題。
問一次,計算它的時間和你的時間之間的差異,在這裏你去:你有時間差,你可以在任何你想要的地方使用它。

請記住,即使您獲得時間,由於網絡延遲,您獲得的時間與服務器的實時間可能會有所不同。

+0

我正在提出請求的服務器當前正在使用UTC時間。所以我想花時間,然後根據客戶端的時區進行轉換。 – user850234

+0

由於沒有使用XHR對象,HTTP標頭在jsonp上不可用。 –

+0

@JonathanM謝謝你指出。隨意編輯我的答案。 :) –

1

第1部分的答案是,您需要在響應中輸出服務器時間以便您的javascript讀取它。對於第2部分,我會等待響應加載,然後使用setTimeout。使用setInterval意味着在第一個響應返回之前,您可能會觸發兩次ajax調用。

0

當您建議服務器時間是指執行調用的腳本還是服務器上的實際時間?

這是什麼需要,你是否試圖找出每隔5秒自動呼叫的呼叫之間的時間,例如?

如果你只是簡單地從javascript獲得一個語言環境時間,並比較從你在ajax中獲得響應就足夠了嗎?

否則由於其「客戶端」性質,javascript將無法獲得服務器時間。

+0

服務器的實際時間 – user850234

+0

是遠程服務器的實際時間嗎?在這種情況下google.com? – PsyKzz