Gibt es nützliche Anwendungen von verschiedenen Readystate von „4“ (komplett) in einem XHR.onreadystatechange Rückruf?

StackOverflow https://stackoverflow.com/questions/4504990

Frage

Haben Sie schon einmal ein XHR Objekt abfangen onreadystatechange mit einem Readystate unterscheidet sich von „4“ (komplett) verwendet?

Ich bin neugierig, ob Sie jemals eine Funktion mit den möglichen unterschiedlichen Werten auslösen. Ich kann keinen wirklichen Nutzen der anderen Staaten vorstellen. Ist sie etwas nützlich, etwas zu tun?

Kann einige praktische Beispiele, wenn eine geben?

Ich spreche über diese :

  • 0: Anfrage nicht initialisiert
  • 1: Server-Verbindung hergestellt
  • 2: Anforderung empfangen
  • 3: Verarbeitungsanforderung
  • 4: Anfrage abgeschlossen und Antwort bereit ist,
War es hilfreich?

Lösung

Ich benutze es auf einem Intranet-I für Mitteilungen entwickelt haben. Durch das Abfangen des Zustands 3 Ich kann den Benutzer benachrichtigen, dass die Anfrage gestartet.

Ich benutze es auch die Anfragen Übertragungszeiten Zeit. Ich die Zeit zwischen den Zuständen 3 und 4 verstrichene anzuzeigen.

Da ich MooTools verwenden erweiterte ich den Antrag Klasse die OnStateChange Ereignis ausgelöst:

var EarlyRequest = new Class({Extends: Request,
 onStateChange: function() {
  this.fireEvent("onStateChange", [this.xhr.readyState]);
  this.parent();
 }
});

Auf eine zusätzliche Note. Die Definitionen der besagt, dass Sie (von w3cschools) geschrieben sind irreführend, diese sind klarer zu mir (von http://www.w3.org/TR/XMLHttpRequest/#states ):

  • UNSENT (numerischer Wert 0) Das Objekt wird gebaut.

  • GEÖFFNET (numerischer Wert 1) Die open () Methode wurde erfolgreich aufgerufen. Während dieses Zustands-Request-Header gesetzt werden kann setRequestHeader () verwenden und die Anforderung kann mit der Methode send () gemacht werden.

  • HEADERS_RECEIVED (numerischer Wert 2) Alle Umleitungen (falls vorhanden) wurden gefolgt und alle HTTP-Header der endgültigen Antwort empfangen wurden. Mehrere Reaktionsteile des Objekts sind jetzt verfügbar.

  • LADEN (numerischer Wert 3) Die Antwort Entitätskörpers empfangen wird.

  • DONE (numerischer Wert 4) Die Datenübertragung abgeschlossen wurde oder etwas schief gelaufen ist während der Übertragung (z unendlichen Umleitungen).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top