2016-06-27 16 views
4

Browser wie Chrome können nur 6ish parallel requests ausführen.Wie kann ich wissen, wann eine Anfrage gestartet wurde?

Wenn wir versuchen, gleichzeitig mehr als 6 Anfragen zu initiieren sofort,

for (var i = 0; i < 11; 1++) { 
    var oReq = new XMLHttpRequest(); 
    oReq.open('GET', URL); 
    oReq.send(); 
} 

dann wird der Browser sie sie in Chargen von 6.

requests in browser

Ist die Warteschlange und ausführen Ist es möglich zu erkennen, wann eine Anfrage vom Status "Warten" in die Ausführung übergegangen ist?

Das Ereignis onloadstart scheint ausgelöst zu werden, wenn die Anforderung der Warteschlange hinzugefügt wird und nicht, wenn sie tatsächlich geladen wird.

Antwort

2

Haben Sie sich die readyState property of HttppRequest angesehen? Vielleicht wird es Ihre Frage decken ..

XMLHttpRequest Objekteigenschaften

Readystate:

Hält den Status des XMLHttpRequest. Von 0 auf 4:

0: Anfrage nicht initialisiert

1: Server-Verbindung hergestellt

2: Anforderung empfing

3: Verarbeitungsanforderung

4: fordern fertige und Antwort ist bereit

So mit dieser Info könnten Sie etwas tun:

for (var i = 0; i < 11; 1++) { 
    var oReq = new XMLHttpRequest(); 
    oReq.open('GET', URL); 
    oReq.send(); 

    oReq.onreadystatechange = function(){ 
    if (oReq.readyState == 4 && oReq.status == 200) { 
     //do something like an alert 
     //you can get rid of the oReq.status if you want and 
     //just track the readyState (0-4) 
    }; 
    }; 
} 
Verwandte Themen