2010-01-10 96 views
2

好吧,所以我們都知道,大多數現代瀏覽器(沒有調整)一次設置爲4個並行HTTP請求到單個域/子域,但長輪詢AJAX如何影響此?HTTP並行請求和AJAX /輪詢

說我有在15秒的時間間隔很長的輪詢。雖然瀏覽器在15秒內等待響應,但它是否還會吃掉4條平行線中的一條,從而使得只有3個並行HTTP請求可以打開任何新標籤或頁面加載?

回答

1
  1. 這並不總是4,經常是2
  2. 它是可配置在許多瀏覽器客戶端上的一個較大的數字。
  3. 是的,它確實吃掉了一個並聯連接。
+0

那麼關於滯後/等待時間真的沒有什麼可以做到的嗎?我之所以這麼問,是因爲我被告知要將代碼從常規輪詢AJAX更改爲長輪詢,因爲無法執行指向主域的子域AJAX(通過CNAME,目的是突破並行連接限制)。 – nkspartan 2010-01-10 18:00:00

+0

爲什麼不能在主域中使用子域或替代主機名(例如ajax.domain.com而不是www.domain.com)?這將是解決限制的正常方法。 – 2010-01-10 18:05:07

+0

我在ServerFault上問過他們,他們說跨域安全策略會把它搞亂。我希望有辦法做到這一點(避開限制),但我還沒有找到任何東西。 – nkspartan 2010-01-10 18:11:24

1

您可以通過XHR獲得2個併發請求。如果您使用更多,您可能會得到意想不到的結果。

使用請求隊列超過2個請求......每一個前一個後結束正在進行...

一些流行的JS庫實現一個隊列,並且可以使用,或者你可以很容易地創建一個。