我正在開發一個web應用程序。當程序切換頻道時,它會向具有舊頻道的服務器發送「關閉」AJAX請求。作爲服務器響應,應用程序只是向服務器發送一個「打開」請求來打開一個新頻道。大多數情況下,這個等待完成開放等待完成的回合運行得足夠快,但是在特殊通道的情況下,關閉需要超過5秒,這是不可接受的。有沒有一種方法可以執行fire-and-forget AJAX請求?
我已經爲這些通道的「關閉」請求設置了一個短暫的超時時間,並且它會返回,但新的「打開」請求會掛起,直到服務器響應舊的「關閉」請求,所以超時只是將問題推開。
我爲長時間關閉設置了一個setTimeout(),所以當我的程序調用「close」時,它會被延遲,新的「open」會在它之前執行,但它也只是拋出問題,當setTimeout()命中時,在後臺會有一個長的請求,它會佔用瀏覽器的ajax請求池,並且有一些運氣會導致僞隨機AJAX請求掛起。
該應用程序對「關閉」請求的結果沒有興趣,所以即使失敗,它也可以被刪除。
執行這種「即發即棄」AJAX請求的最佳做法是什麼?
(我使用Linux上Chromium瀏覽器,但應用程序應該在Firefox上運行了。)
將ajax-request發送到您的服務器腳本。用serwer腳本捲曲 - 關閉。這樣你可以快速返回並且服務器端將關閉關閉。 –
什麼是服務器端技術?你對此有任何控制嗎?似乎最簡單的選擇是更改「關閉」服務器端方法以產生新的線程/進程/後臺工作者並立即返回。 –
是的,我有限的訪問服務器端,我可以使用JSP。 – ern0