2017-08-08 2 views
-3

Ich versuche 16 asynchrone Anfrage an mein Back-End zu senden.AJAX Async funktioniert nicht

Aber sie zurück ausführen 1 nach dem anderen.

enter image description here

Wie Antwort wie diese erhalten? :

enter image description here

+0

als @Igor sagte. HTTP-Anfragen brauchen Zeit, um zu initiieren, und Sie können nicht so viele gleichzeitig starten ... Aber Ihre Anrufe warten nicht auf das Ende des anderen, sie sind daher asynchron. Probieren Sie einen Sync Ajax, Sie werden sehen, was es tut. Es friert den Browser tatsächlich vollständig ein. – Salketer

+0

Wenn Sie sehen, dass Ihre Antworten nur ein paar Bytes sind, sollten Sie die Datenmenge, die Sie senden, auf jeden Fall erhöhen. – Salketer

+0

Jetzt ist es nur eine leere Antwort. – user2264784

Antwort

5

Browser erzwingt eine Begrenzung der Anzahl der gleichzeitigen HTTP-Verbindungen werden sie (und eine kleinere Grenze für die Anzahl von Verbindungen zu jeder gegebenen Domäne) öffnen.

Wenn Sie dieses Limit überschreiten, werden die Anforderungen in eine Warteschlange eingereiht.

Das sieht man daran, dass die ersten vier gleichzeitig starten, dann der Rest sich verzögert.

+0

Ich sehe, aber was für eine Lösung? – user2264784

+0

Die einzige Arbeit um das ist, HTTP-Aufrufe zu begrenzen, die Sie vornehmen müssen ... Man könnte serverseitige Skripte verwenden, um Anforderungen oder etwas zu aggregieren. – Salketer

+0

Wie erhalten Sie die Antwort wie im zweiten Bild? – user2264784