In Firefox 3 lautet die Antwort 6 pro Domain: Sobald eine 7. XmlHttpRequest (auf einer beliebigen Registerkarte) für dieselbe Domain ausgelöst wird, wird sie in die Warteschlange gestellt, bis eine der anderen 6 beendet ist.
Wie lauten die Nummern für die anderen gängigen Browser?
Gibt es auch Möglichkeiten, diese Grenzwerte zu umgehen, ohne dass meine Benutzer ihre Browsereinstellungen ändern? Gibt es beispielsweise Beschränkungen für die Anzahl der JSONP-Anforderungen (die die Skript-Tag-Injektion anstelle eines XmlHttpRequest-Objekts verwenden)?
Hintergrund: Meine Benutzer können XmlHttpRequests von einer Webseite an den Server senden und den Server auffordern, ssh-Befehle auf Remote-Hosts auszuführen. Wenn die Remote-Hosts nicht verfügbar sind, dauert es einige Minuten, bis der Befehl ssh fehlschlägt, sodass meine Benutzer möglicherweise keine weiteren Befehle mehr ausführen können.
quelle
Antworten:
Ein Trick, mit dem Sie die Anzahl der gleichzeitigen Verbindungen erhöhen können, besteht darin, Ihre Bilder von einer anderen Subdomäne zu hosten. Diese werden als separate Anforderungen behandelt. Jede Domain ist auf das gleichzeitige Maximum beschränkt.
IE6, IE7 - haben ein Limit von zwei. IE8 ist 6, wenn Sie ein Breitband haben - 2 (wenn es sich um eine Einwahl handelt).
quelle
Die Netzwerkergebnisse bei Browserscope geben Ihnen sowohl Verbindungen pro Hostname als auch Max. Verbindungen für gängige Browser. Die Daten werden durch Ausführen von Tests für Benutzer "in freier Wildbahn" erfasst, damit sie auf dem neuesten Stand bleiben.
quelle
Mit IE6 / IE7 kann die Anzahl der gleichzeitigen Anforderungen in der Registrierung angepasst werden. Hier erfahren Sie, wie Sie jeweils vier festlegen.
quelle
without having my users modify their browser settings
. Es ist auch nicht praktisch, da man dies auf jedem Client tun müsste.Ich habe gerade bei www.browserscope.org nachgefragt und mit IE9 und Chrome 24 können Sie 6 gleichzeitige Verbindungen zu einer einzelnen Domain und bis zu 17 zu mehreren herstellen.
quelle
Laut IE 9 - Was hat sich geändert? Im HttpWatch-Blog hat IE9 über VPN immer noch ein Verbindungslimit von 2.
quelle
Ich habe einen AJAX-Tester für eine einzelne Datei geschrieben. Geniesse es!!! Nur weil ich Probleme mit meinem Hosting-Anbieter hatte
Bearbeiten:
r bedeutet Zeile und w Wartezeit.
Wenn Sie zum ersten Mal die Starttaste 80 (oder eine andere Anzahl) der gleichzeitigen Ajax-Anforderung drücken, werden diese über Javascript gestartet, aber bekanntlich werden sie vom Browser gespoolt. Außerdem werden sie parallel zum Server angefordert (auf eine bestimmte Anzahl beschränkt, dies ist die Tatsache dieser Frage). Hier werden die Anfragen serverseitig mit einer zufälligen Verzögerung (festgelegt durch w) gelöst. Zur Startzeit wird die gesamte Zeit berechnet, die zum Lösen aller Ajax-Anrufe benötigt wird. Wenn der Test abgeschlossen ist, können Sie sehen, ob er die Hälfte, den dritten, ein Viertel usw. der Gesamtzeit in Anspruch genommen hat, abzüglich der Parallelität bei den Aufrufen an den Server. Dies ist weder streng noch präzise, aber es ist schön, in Echtzeit zu sehen, wie Ajax-Anrufe abgeschlossen werden (siehe eingehendes Kreuz). Und ist ein sehr einfaches, in sich geschlossenes Skript, das die Grundlagen von Ajax zeigt.
Dies setzt natürlich voraus, dass die Serverseite kein zusätzliches Limit einführt.
Verwenden Sie es vorzugsweise in Verbindung mit dem Firebug Net Panel (oder dem Äquivalent Ihres Browsers).
quelle
Schrieb meinen eigenen Test. getestet den Code auf Stackoverflow, funktioniert gut sagt mir, dass Chrome / FF 6 kann
Es funktioniert für die meisten Websites, die zu unterschiedlichen Zeiten ein Ereignis zur Änderung des Zustands auslösen können. (aka: Spülen)
Ich stelle auf meinem node.js-Server fest, dass ich mindestens 1025 Bytes ausgeben musste, um das Ereignis / Flush auszulösen. Andernfalls würden die Ereignisse nur alle drei Zustände gleichzeitig auslösen, wenn die Anforderung abgeschlossen ist. Hier ist mein Backend:
Aktualisieren
Ich stelle fest, dass Sie jetzt bis zu 2x Anfragen haben können, wenn Sie gleichzeitig xhr und fetch api verwenden
quelle
Ich glaube, es gibt eine maximale Anzahl von gleichzeitigen http-Anfragen, die Browser an dieselbe Domain senden. Diese liegt in der Größenordnung von 4 bis 8 Anfragen, abhängig von den Einstellungen des Benutzers und dem Browser.
Sie können Ihre Anforderungen so einrichten, dass sie zu verschiedenen Domänen wechseln, was möglicherweise machbar ist oder nicht. Die Yahoo-Leute haben in diesem Bereich viel recherchiert, worüber Sie ( hier ) lesen können . Denken Sie daran, dass für jede neue Domain, die Sie hinzufügen, auch eine DNS-Suche erforderlich ist. Die YSlow-Leute empfehlen zwischen 2 und 4 Domänen, um einen guten Kompromiss zwischen parallelen Anforderungen und DNS-Suchvorgängen zu erzielen. Dabei geht es jedoch um die Ladezeit der Seite und nicht um nachfolgende AJAX-Anforderungen.
Kann ich fragen, warum Sie so viele Anfragen stellen möchten? Es gibt gute Gründe dafür, dass die Browser die Anzahl der Anforderungen auf dieselbe Domain beschränken. Wenn möglich, sollten Sie Anfragen besser bündeln.
quelle