Warum wird meine Anfrage Ajax geht direkt von Zustand 1 bis 4?
Frage
Ich mache eine Anforderung an ein CGI-Programm mit AJAX. Die Antwort sendet mir Content-Length. Mein Ziel ist es dynamisch die Antwort Fortschritt zu zeigen. Dafür brauche ich eine Funktion auf onreadystate Wert von XHR-Objekt starten 3. Aber der Wunsch scheint nicht, dass die Statusnummer zu erwerben zu sein. Stattdessen geht es direkt vom Zustand 1 in den Zustand 4. Was bin ich?
Lösung
Die Antwort so schnell gehen könnte, dass man es einfach nicht merken, im Zustand 3. Vor allem, wenn Sie es auf localhost laufen, könnte die Reaktion sehr schnell übertragen werden. Sie könnten versuchen, einen Alarm einstellen, wenn es bekommt 3 auf der Bühne zu testen, ob es dort tatsächlich wird immer. Auch ich glaube Internet Explorer sagt, dass es ein Fehler ist, die Reaktion in der Stufe 3 so zugreifen könnte es Kompatibilitätsprobleme sein.
Andere Tipps
Wenn Sie auf localhost laufen lassen, dann ist wahrscheinlich der Browser nie eine Chance bekommt zwischen der Zeit, es sendet die Anfrage und die Zeit, es wird die Antwort zu laufen ...
- Browser öffnet Verbindung setzt readystate zu 1
- Browser sendet Paket an Server-Prozess
- Server-Prozess empfängt Paket, erhält Priorität von Scheduler
- Server liefert Daten zum Browser, und die Ausbeuten der Steuerung der CPU. Browser setzt die Ausführung.
- Browser sieht alle Daten empfangen worden ist, setzt Readystate bis 4.
Lange Rede kurzer Sinn: zählen nicht in die „empfangenden“ Zustand auf dem Gehen.