2010-03-30 26 views
1

嗨,大家好,我需要能夠在每隔幾分鐘後發出一次ajax呼叫。基本上,ajax調用將檢查收件箱中的新電子郵件。如果有新的電子郵件,它會將電子郵件下載到數據庫。我把所有的服務器端代碼設置得很好。我只需要知道如何在前端設置每隔幾分鐘後發出ajax調用的部分,並且應該將其設置爲使得我們不會結束並行的ajax調用,即如果ajax調用沒有返回響應,它不應該啓動一個新的Ajax請求。需要在JavaScript中的固定時間段後增量執行ajax調用?

回答

3

http://www.w3schools.com/jsref/met_win_settimeout.asp

http://www.w3schools.com/jsref/met_win_setinterval.asp

設定的時間間隔可能更喜歡你之後,你可以調用像

的setInterval(函數(){/ *代碼你想在這裏運行* /},100);

那麼您的代碼將每隔100毫秒運行一次。

你obviusly需要使用一個更大的時間,像60000的每一分鐘。如果您使用settimeout方法,那麼您可以讓它檢查是否等待ajax的響應,並讓處理ajax響應的代碼設置新的超時。

+0

如果我想將一些參數傳遞給settimeout方法調用的函數,我該怎麼做? – Ali 2010-03-31 06:39:33

0

我會設置一個反彈一個cookie並在服務器和客戶端之間存儲t他上次發出ajax請求。然後在每個頁面加載時,一個js腳本讀取cookie並在下一個ajax請求之前設置一個setTimeout剩餘時間。

+0

爲什麼要花費所有額外的努力來讓AJAX請求每隔X秒,當s'etInterval'讓你用一個函數調用完成時呢? – thecoshman 2010-03-30 12:31:22

+0

由於setInterval將在下一頁加載時重置,如果定時器設置爲「幾分鐘」,發生概率的可能性很高。所以你的ajax請求**永遠不會觸發**。 – Alsciende 2010-03-30 12:50:28

+0

你可以通過發送一個電話來檢查每次頁面加載時的新電子郵件......這可能是*頁面加載正在做什麼*反正* – Dancrumb 2010-03-30 12:52:22

相關問題