In "Pragmatic Ajax (Dynamic Website static) A Web 2.0 Primer" habe ich versehentlich eine Einführung in den Zustand von Readystae gesehen. Ich bin der Meinung, dass diese Einführung sehr realistisch ist. Die Übersetzung ist wie folgt:
0: (nicht initialisiert) Die Send () -Methode wurde noch nicht aufgerufen.
1: (Laden) Die Send () -Methode wurde aufgerufen, Anfrage in Arbeit.
2: (geladen) Die Send () -Methode wurde abgeschlossen, die gesamte Antwort empfangen.
3: (interaktiv) Die Antwort wird analysiert.
4: (abgeschlossen) Die Antwort wurde analysiert und ist zur Ernte bereit.
0 - (nicht initialisiert) Die Send () -Methode wurde noch nicht aufgerufen
1 - (laden) Die Send () -Methode wurde aufgerufen und die Anfrage wird gesendet
2 - (Laden ist abgeschlossen) Die Send () -Methode wurde ausgeführt und alle Antwortinhalte wurden empfangen
3 - (Interaktion) Antwortinhalt wird analysiert
4 - (vollständig) Der Analyse des Antwortinhalts wird abgeschlossen und kann auf den Client aufgerufen werden
Die meisten anderen Bücher sind vage über diese fünf Zustände von ReadyState. Beispielsweise ist in "Foundations of Ajax" der "Name" des Staates einfach in Tabelle 2-2 im Buch - dem Status der Anfrage, aufgeführt. Die fünf möglichen Werte sind 0 = nicht initialisiert, 1 = Laden, 2 = geladen, 3 = interaktiv und 4 = vollständig. Die Details dieser 5 Zustände scheinen in "Ajax (Dynamic Website static) in Aktion überhaupt nicht erwähnt zu werden. Obwohl der "professionelle Ajax" nicht zufriedenstellend ist, hat er immer noch Vorteile:
Es gibt fünf mögliche Werte für ReadyState:
0 (nicht initialisiert): Das Objekt wurde erstellt, aber die Open () -Methode wurde nicht aufgerufen.
1 (Laden): Die Open () -Methode wurde aufgerufen, die Anfrage wurde jedoch nicht gesendet.
2 (geladen): Die Anfrage wurde gesendet.
3 (interaktiv). Eine teilweise Antwort wurde empfangen.
4 (vollständig): Alle Daten wurden empfangen und die Verbindung wurde geschlossen.
Es gibt fünf mögliche Werte für ReadyState:
0 (nicht initialisiert): (XML (Standardisierung nimmt näher) Httprequest) wurde erstellt, aber die Open () -Methode wurde noch nicht aufgerufen.
1 (Last): Die Open () -Methode wurde aufgerufen, die Anfrage wurde jedoch noch nicht gesendet.
2 (Laden ist abgeschlossen): Die Anfrage wurde gesendet.
3 (Interaktion): Ein Teil der Antwortdaten kann empfangen werden.
4 (vollständig): Alle Daten wurden empfangen und die Verbindung wurde geschlossen.
In "Ajax verstehen: JavaScript zum Erstellen von reichhaltigen Internetanwendungen" wird die folgende Tabelle erläutert:
ReadyState Status Code
Status des XML (Standardisierung nimmt näher) httprequest -Objekt
(0) nicht initialisiert
Das Objekt wurde erstellt, aber nicht initialisiert. (Die offene Methode wurde nicht aufgerufen.)
(XML (Standardisierung nimmt näher) Httprequest) wurde erstellt, wurde jedoch noch nicht initialisiert (die offene Methode wurde noch nicht aufgerufen).
(1) Laden
Laden Sie das Objekt wurde erstellt, die Send -Methode wurde jedoch nicht aufgerufen.
(XML (Standardisierung nimmt näher) Httprequest) wurde erstellt, aber die Send -Methode wurde noch nicht aufgerufen.
(2) geladen
Die Send -Methode wurde aufgerufen, aber der Status und die Header sind noch nicht verfügbar.
Die Send -Methode wurde aufgerufen, der Status und der Header der HTTP -Antwort sind nicht verfügbar.
(3) interaktiv
Interaktion einige Daten wurden empfangen. Das Aufrufen von ResponseBody- und Responsext -Eigenschaften in diesem Zustand, um Teilergebnisse zu erzielen, gibt einen Fehler zurück, da Status- und Antwortheader nicht vollständig verfügbar sind.
Einige Daten wurden empfangen. Wenn Sie jedoch den Reaktionsbody und ResponTeXTEXT -Eigenschaften aufrufen, um einige Ergebnisse zu erzielen, tritt ein Fehler auf, da der Status und die Antwortheader nicht vollständig verfügbar sind.
(4) abgeschlossen
Alle Daten wurden empfangen, und die vollständigen Daten sind in den Eigenschaften des ResponseBody und Responsext verfügbar.
Alle Daten wurden empfangen und die vollständigen Daten können in den Eigenschaften des ResponseBody und Responsext extrahiert werden.
Nach der Einführung der fünf Zustände von ReadyState in den oben genannten Büchern denke ich, dass "pragmatischer Ajax (Dynamic -Website static) ein Web 2.0 -Primer" eher vorhanden ist, da das Problem der analysierenden Daten an die analyse empfangenen Daten erwähnt wird, die nicht in anderen Büchern erwähnt werden. Dies ist der Grund, warum das Stadium "(3) Interaktion" als notwendiger Konvertierungsprozess zwischen "(2) Lastabschluss" und "(4) Vollendung", dh seine Aufgabe. Zusammenfassend denke ich, dass die ideale Erklärungsmethode diese Zustände im Expressionsmuster von "Zustand: Aufgabe (objektiv) + Prozess + Leistung (oder Eigenschaften) genau definieren sollte. Die aktuelle Versuchsübersicht lautet wie folgt:
ReadyState Status Beschreibung
(0) nicht initialisiert
Bestätigen Sie in dieser Phase, ob das HTTPREquest -Objekt XML (Standardisierung näher rückt) erstellt wird, und bereiten Sie die Aufruf der Open () -Methode für die Uneinheitliche vor. Ein Wert von 0 bedeutet, dass das Objekt bereits existiert, andernfalls meldet der Browser einen Fehler - das Objekt existiert nicht.
(1) Last
In dieser Phase wird das HTTPrequest -Objekt von XML (Standardisierung näher und näher) initialisiert, dh die Open () -Methode wird aufgerufen, um die Einstellung des Objektzustands gemäß den Parametern (Methode, URL, True) zu vervollständigen. Und rufen Sie die Methode Send () an, um mit dem Senden einer Anfrage an den Server zu senden. Ein Wert von 1 bedeutet, dass eine Anfrage an den Server gesendet wird.
(2) Die Belastung ist abgeschlossen
Diese Phase empfängt die Antwortdaten von der Serverseite. Was jedoch erhalten wird, sind die ursprünglichen Daten der Serverantwort und können nicht direkt im Client verwendet werden. Ein Wert von 2 bedeutet, dass die vollständigen Antwortdaten empfangen wurden. Und bereiten Sie sich auf die nächste Stufe der Datenanalyse vor.
(3) Interaktion
In dieser Phase werden die empfangenen Antwortdaten serverseitig analysiert. Das heißt, gemäß dem vom serverseitigen Antwortheader zurückgegebenen MIME-Typ werden die Daten in ein Format umgewandelt, auf das über den ResponseBody, ResponTeText oder ResponseSexML (Standardisierung näher und näher) zugegriffen werden kann und auf Client-Anrufe vorbereitet werden. Status 3 bedeutet, dass Daten analysiert werden.
(4) abgeschlossen
Bestätigen Sie in dieser Phase, dass alle Daten in das dem Client zur Verfügung stehende Format und das Parsing abgeschlossen wurden. Ein Wert von 4 bedeutet, dass die Daten analysiert wurden. Daten können durch die entsprechenden Eigenschaften des HTTPrequest -Objekts erhalten werden (die Standardisierung kommt immer näher).
Zusammenfassend lässt sich sagen, dass der Lebenszyklus des gesamten XML (Standardisierung näher und näher) das HTTPrequest -Objekt enthalten sollte: die folgenden Phasen:
Erstellen - Initialisieren Sie Anforderung - Anfrage senden - Daten empfangen - Daten analysieren - vollständig abgeschlossen
In spezifischen Anwendungen können die Bedeutung der fünf Zustände von ReadyState (XML (Standardisierung näher) und die verschiedenen Stadien des Lebenszyklus des Httprequest -Objekts) das Geheimnis des Kerns der Ajax beseitigen (statische Website) (hinter der vagen Aussage ist entweder ein anspruchsvolles und mysteriöser Weg, um einen Sinn für mystery zu erzeugen. " beim Lernen und Verbesserung des Selbstvertrauens.
Zum Beispiel, indem Sie dem Beispiel folgen:
Die Codekopie lautet wie folgt:
// Array deklarieren
var States = ["Initialisierung ...",
„Initialisieren der Anfrage… erfolgreich!
Senden einer Anfrage ... ",
"Erfolg!
Daten empfangen ... ",
"Beenden!
Daten analysieren ... ",
"Beenden!
”];
// interner Code -Snippet der Rückruffunktion
if (xml (Standardisierung nimmt näher) http.readystate == 4)
{
var span = document.createelement ("span");
span.innerhtml = Zustände [XML (Standardisierung nimmt näher) http.readystate];
document.body.appendchild (span);
if (xml (Standardisierung nimmt näher) http.status == 200)
{
var xml (Standardisierung nimmt näher) doc = xml (Standardisierung nimmt näher)
// anderer Code
}
// Vergessen Sie nicht, es zu zerstören, um Speicherleckage zu verhindern
XML (Standardisierung nimmt näher) http = null;
}anders{
var span = document.createelement ("span");
span.innerhtml = Zustände [XML (Standardisierung nimmt näher) http.readystate];
document.body.appendchild (span);
} Die Ergebnisse sind wie folgt:
Initialisieren der Anfrage ... erfolgreich!
Senden einer Anfrage ... erfolgreich!
Daten empfangen ... abgeschlossen!
Daten analysieren ... abgeschlossen!
Es ist leicht zu verstehen, was das HTTPREquest -Objekt des XML (Standardisierung nähert sich nähert) in allen Stadien tut. Daher ist es leicht, ein wirklich einfaches und klares Verständnis des Kernteils von AJAX (Dynamic -Website statisch) zu haben.