W Firefoksie 3 odpowiedź wynosi 6 na domenę: jak tylko zostanie uruchomiony siódmy XmlHttpRequest (na dowolnej karcie) do tej samej domeny, jest on ustawiany w kolejce, aż jedna z pozostałych 6 zakończy.
Jakie są liczby dla innych głównych przeglądarek?
Czy są też sposoby na obejście tych ograniczeń bez konieczności modyfikowania przez moich użytkowników ustawień przeglądarki? Na przykład, czy istnieją ograniczenia liczby żądań jsonp (które używają wstrzykiwania znaczników skryptu zamiast obiektu XmlHttpRequest)?
Tło: Moi użytkownicy mogą tworzyć XmlHttpRequests ze strony internetowej na serwer, prosząc serwer o uruchomienie poleceń ssh na zdalnych hostach. Jeśli hosty zdalne są wyłączone, polecenie ssh nie powiedzie się przez kilka minut, co ostatecznie uniemożliwi moim użytkownikom wykonywanie dalszych poleceń.
źródło
Odpowiedzi:
Jednym ze sposobów na zwiększenie liczby jednoczesnych połączeń jest hostowanie obrazów z innej subdomeny. Będą one traktowane jako osobne żądania, każda domena będzie ograniczona do równoczesnego maksimum.
IE6, IE7 - mają limit dwóch. IE8 to 6, jeśli masz łącze szerokopasmowe - 2 (jeśli jest to połączenie dial-up).
źródło
Wyniki sieciowe w Browserscope dadzą Ci zarówno Połączenia na nazwę hosta, jak i Max Połączenia dla popularnych przeglądarek. Dane są gromadzone poprzez przeprowadzanie testów na użytkownikach „na wolności”, dzięki czemu będą aktualne.
źródło
Dzięki IE6 / IE7 można dostosować liczbę jednoczesnych żądań w rejestrze. Oto jak ustawić go na cztery.
źródło
without having my users modify their browser settings
. Nie jest to również praktyczne, ponieważ trzeba to zrobić na każdym kliencie.Właśnie sprawdziłem na www.browserscope.org, a dzięki IE9 i Chrome 24 możesz mieć 6 równoczesnych połączeń z jedną domeną, a nawet 17 z wieloma.
źródło
Według IE 9 - co się zmieniło? na blogu HttpWatch, IE9 nadal ma limit 2 połączeń w sieci VPN.
źródło
Napisałem jeden tester plików AJAX. Ciesz się !!! Tylko dlatego, że miałem problemy z moim dostawcą hostingu
Edycja:
r oznacza wiersz i czas oczekiwania.
Kiedy początkowo naciśniesz przycisk Start 80 (lub dowolną inną liczbę) współbieżnego żądania ajax są uruchamiane przez javascript, ale jak wiadomo są one buforowane przez przeglądarkę. Są one również przesyłane do serwera równolegle (ograniczona do pewnej liczby, to jest fakt tego pytania). Tutaj żądania są rozwiązywane po stronie serwera z losowym opóźnieniem (ustalonym przez w). W momencie rozpoczęcia obliczany jest cały czas potrzebny do rozwiązania wszystkich wywołań ajax. Po zakończeniu testu można sprawdzić, czy zajęło to połowę, zajęło trzecie, zajęło ćwierć itd. Całkowitego czasu, odejmując, która była równoległością połączeń do serwera. Nie jest to ani ścisłe, ani precyzyjne, ale miło jest zobaczyć w czasie rzeczywistym, w jaki sposób wykonywane są wywołania ajaxs (widząc przychodzący krzyż). I jest to bardzo prosty samodzielny skrypt pokazujący podstawy ajax.
Oczywiście zakłada to, że po stronie serwera nie wprowadzono żadnego dodatkowego limitu.
Najlepiej używać w połączeniu z panelem sieci firebug (lub odpowiednikiem przeglądarki)
źródło
Napisałem własny test. przetestowałem kod na stackoverflow, działa dobrze mówi mi, że chrome / FF może zrobić 6
działa w przypadku większości witryn internetowych, które mogą wywoływać zdarzenia zmiany readystate w różnych momentach. (aka: flushing)
Zauważyłem na moim serwerze node.js, że musiałem wydać co najmniej 1025 bajtów, aby wyzwolić zdarzenie / opróżnienie. w przeciwnym razie zdarzenia po prostu wywołałyby wszystkie trzy stany jednocześnie, gdy żądanie jest kompletne, więc oto mój backend:
Aktualizacja
Zauważam, że możesz teraz otrzymać nawet 2x żądanie, jeśli korzystasz jednocześnie z xhr i api
źródło
Uważam, że istnieje maksymalna liczba równoczesnych żądań HTTP wysyłanych przez przeglądarki do tej samej domeny, co odpowiada kolejności od 4 do 8 żądań w zależności od ustawień użytkownika i przeglądarki.
Możesz skonfigurować swoje prośby o przejście do różnych domen, co może, ale nie musi być wykonalne. Chłopaki z Yahoo przeprowadzili wiele badań w tej dziedzinie, o których można przeczytać ( tutaj ). Pamiętaj, że każda nowa domena, którą dodasz, również wymaga wyszukiwania DNS. Chłopaki z YSlow zalecają od 2 do 4 domen, aby osiągnąć dobry kompromis między równoległymi żądaniami a wyszukiwaniem DNS, chociaż skupia się to na czasie ładowania strony, a nie kolejnych żądaniach AJAX.
Czy mogę zapytać, dlaczego chcesz składać tak wiele wniosków? Istnieją dobre powody, dla których przeglądarki ograniczają liczbę żądań do tej samej domeny. Lepiej będzie, jeśli to możliwe, grupowanie wniosków.
źródło