2011-10-07 89 views
0

我正在調用一個需要50分鐘才能發送響應的cgi腳本。我需要保留我的xhr活動直到響應來自該cgi。 如何做到這一點? 它似乎在某些默認時間後自動超時請求超時。XMLHttpRequest在響應到達之前超時

+2

嘗試優化該CGI腳本,50分鐘太多:) – Ankit

回答

0

您可以使用:

xhr.timeout = 10000; 
xhr.ontimeout = timeoutFired; 

用於此目的

+0

感謝您的答覆..但什麼是timeoutFired ?? – Ved

+0

timeoutFired將會是你的函數,它會在超時發生時被調用(例如,如果你想在一段時間後忽略你的請求,那麼你可以使用這個函數) – Ankit

0

我不認爲你應該做這個內嵌的請求。另一種方法是將你的請求作爲一個工作提交給一些後端進程/線程/消息隊列,並存儲一個引用以便你可以訪問結果。在數據庫甚至文件中,一旦處理完成。

直到結果可用,您可以顯示一些「更新」文本或旋轉圖標,讓用戶知道發生了一些事情。

對於那段時間我不會依賴於一個開放的HTTP連接。

+0

Thnx的回覆,但任何我需要做的這按照要求進行。實際上用戶在cgi調用完成之前不應該做任何事情。 – Ved

+0

@ adn295:爲此,只要顯示一個加載圖像(禁用背景,以便不執行任何操作),一旦發送請求(檢查xmlhttprequest請求發送的代碼)並在收到響應後刪除該圖像。 – Ankit

相關問題