2009-06-24 18 views
1

Von dem, was ich verstehe, wenn clientseitige Javascript-Code die XMLHttpRequest verwendet, um eine POST-Anfrage zu machen, wartet es auf eine Antwort und wenn es abgeschlossen ist, ändert es seinen ReadyState.Complete und ruft die Rückruffunktion auf.Wie kann XMLHttpRequest wissen, wann der Callback aufgerufen werden soll?

Meine Frage ist: Wie bestimmt es, dass die Antwort abgeschlossen ist? Gibt es den Inhalt des ersten empfangenen TCP-Pakets zurück? Oder schließt der Server die TCP-Verbindung und beendet damit die Transaktion? Oder gibt es etwas Besonderes im TCP-Paketinhalt, das dem XMLHttpRequest-Objekt mitteilt, dass die Antwort vollständig ist?

Antwort

2

Es wartet entweder, bis der Server seine Verbindung beendet, oder es wartet, bis es eine Anzahl von Bytes aus der Antwort gelesen hat, die dem Content-Length-Header in der Antwort entspricht.

2

Es folgt HTTP-Spezifikation. Die Antwort muss entweder Content-Length oder chunked Inhaltscodierung sein. Bei der HTTP/1.0-Verbindung ist auch eine Verbindung möglich.