2010-10-02 32 views
4

我正在做彗星長輪詢以從服務器檢索通知。快速請求新頁面時會出現嚴重延遲。長期輪詢請求持續60秒。我很有信心,原因是IE7正在等待這些請求完成。如果我在註冊表中啓動MaxConnectionsPerServer值,延遲就消失了。通過最大連接阻止IE7 Ajax調用

我試着調用窗口卸載的ajax請求放棄,但沒有奏效。我有警報以確保中止正在被調用。

我還能做什麼?

回答

3

你是對的,這個問題是由於IE中的2連接限制。

您最好的選擇是將長期請求移動到不同的域(或子域),這將繞過連接限制。進一步考慮這個想法,你可以使用帶有通配DNS的隨機子域名,使解決方案更好。

請注意,這會對您的代碼造成安全隱患,因爲所有當前瀏覽器在默認情況下都會阻止跨域請求。您的解決方法可能包括cross-site HTTP requests,JSONP和各種HTML5功能,如postMessage。

我已經詳細描述了這個問題here

+0

謝謝jvenema,我之前嘗試過使用JSONP的跨站點HTTP請求。它沒有SSL的完美工作。但是,我們的大部分客戶羣都需要SSL。我必須重新使用站點域中的代理服務。也許我做錯了,JSONP可以使用SSL ......我必須調查一下。再次感謝。 – 2010-10-04 18:03:53

+0

此外,任何想法爲什麼調用請求中止不釋放連接? – 2010-10-04 18:06:50

+0

如果你實際上放棄了請求(xhr?)它*應該*釋放東西;但不要忘記,它仍然按順序處理請求,所以如果你有4個長期連接打開,並且你殺了其中一個,其他3個仍然會被阻塞。和JSONP可以使用SSL就好,我們一直這樣做:) – jvenema 2010-10-04 19:35:07