Ajax erfreut sich in den letzten Jahren großer Beliebtheit, und das Wesentliche von Ajax ist XMLHttpRequest, bei dem es sich um die Verwendung clientseitiger XMLHttpRequest-Objekte handelt. Im Vergleich zu Ajax verwendet serverseitiges XMLHTTP das XMLHttpRequest-Objekt auf der Serverseite. Obwohl es unbequemer ist, asynchrone Anforderungen auf der Serverseite zu verwenden, da es sich um eine Komponente handelt, die HTTP-Anforderungen auf der Serverseite senden kann, kann es nicht schaden, sich darüber zu informieren.
Hier geht es um die Verwendung von serverseitigem XMLHttpRequest in einer ASP-Umgebung und die Verwendung von JScript als Sprache für Demonstrationscode. Daher müssen Sie ASP und JScript verstehen.
Serverseitiges XMLHTTP wird normalerweise verwendet, um Webseiten oder andere Inhalte von Remote-Hosts abzurufen. Nachrichtenaggregationssysteme verwenden im Allgemeinen serverseitige XMLHTTP-Objekte, um den Inhalt des zu aggregierenden Feeds abzurufen, und verwenden dann XMLDOM-Objekte, um den Inhalt des Feeds zu analysieren Die Titel der Nachrichten, der Autor, der Inhalt und andere Informationen werden dann in der Datenbank gespeichert und anschließend werden die Nachrichten aus mehreren Datenquellen zusammen angezeigt. Catch Shrimp ist so ein Nachrichtenaggregator, aber er ist nicht in ASP geschrieben :)
In ASP können wir den folgenden Code verwenden, um ein ServerXMLHTTP-Objekt zu erstellen. Dieses Objekt ist die Grundlage für alle Vorgänge, die wir auf der Serverseite ausführen.
Kopieren Sie den Codecode wie folgt:
var xmlhttp = new ActiveXObject(MSXML2.ServerXMLHTTP.5.0);
Schauen wir uns zunächst die nützlicheren Methoden des ServerXMLHTTP-Objekts an:
1. abort Diese Methode wird verwendet, um XMLHTTP-Anfragen abzubrechen. Wenn das XMLHTTP-Objekt eine Anfrage asynchron sendet und die Anfrage nach einer bestimmten Zeit immer noch nicht zurückkommt, können Sie diese Methode verwenden, um die Anfrage abzubrechen.
2. getAllResponseHeaders Der Rückgabewert dieser Methode ist eine Zeichenfolge, die dem Header der HTTP-Anforderung ohne die Informationen zur Anforderungsmethode, URI und Protokollversion entspricht.
3. getResponseHeader Diese Methode wird verwendet, um die angegebenen Header-Informationen abzurufen. Die nützlichere Methode besteht darin, den Inhaltstyp, den Referrer usw. der zurückgegebenen Daten abzurufen.
4. open initialisiert eine Anfrage mit der angegebenen Anfragemethode, URI, Synchronisationsmethode, Authentifizierungsinformationen usw.
5. send sendet eine HTTP-Anfrage und wartet auf den Empfang der Antwortdaten. Wenn die Anfrage synchron gesendet wird, kehrt die Sendemethode nicht sofort nach dem Aufruf zurück, sondern wartet, bis die Anfrage abgeschlossen ist Beim Anfordern in einer asynchronen Methode wird sofort zurückgegeben. Darüber hinaus verfügt die Sendemethode über einen optionalen Parameterkörper, der die zu sendenden Daten darstellt, was bei Verwendung der POST-Methode nützlicher ist.
6. setTimeout legt die vier Zeitüberschreitungen des ServerXMLHTTP-Objekts fest: Auflösung des Domänennamens, Verbindung zum Server, Senden von Daten und Empfangen von Antworten. Sie können das ServerXMLHTTP-Objekt steuern, indem Sie den entsprechenden Timeout-Zeitraum festlegen, um zu verhindern, dass ServerXMLHTTP nicht rechtzeitig zurückkehrt und das Programm nicht mehr reagiert.
7. setRequestHeader legt den Header der Anfrage fest. Im XMLHttpRequest-Client wird er normalerweise verwendet, um den Datentyp der Anfrage festzulegen oder die Anfragemethode usw. zu identifizieren. Beispielsweise fügt jquery die Header-ID X-Request-With hinzu um anzugeben, dass die Anforderung vom XMLHttpRequest-Objekt stammt. Ausgestellt, um dem Server die Durchführung entsprechender Aktionen zu erleichtern.
8. waitForResponse Wenn Sie eine Anfrage asynchron senden, können Sie diese Methode verwenden, um den Anfrageprozess zu steuern. In serverseitigen Skripten können Sie Rückruffunktionen nicht direkt verwenden, um asynchrone Anforderungen zu steuern, wie dies beim Client der Fall ist, und es gibt keine entsprechende Funktion, um das Programm für einen bestimmten Zeitraum in den Ruhezustand zu versetzen, um auf die Anforderung zu warten Rückkehr, wir können diese Methode verwenden, um eine bestimmte Zeit zu warten.
Darüber hinaus gibt es noch andere Methoden wie getOption, setOption, setProxy usw. Diese Methoden werden selten verwendet und werden daher hier nicht vorgestellt. Freunde, die mehr wissen müssen, können sich auf MSDN beziehen.
Schauen wir uns als Nächstes die Eigenschaften des ServerXMLHTTP-Objekts an:
1. onreadystatechange Die Rückruffunktion, wenn sich der XMLHTTP-Objektstatus ändert. Dieses Attribut legt die Grundlage für asynchrone Vorgänge und ermöglicht es dem Programm, zu erkennen, ob der XMLHTTP-Vorgang abgeschlossen wurde, ohne den XMLHTTP-Objektstatus abzufragen.
2. Der Status des readyState XMLHTTP-Objekts hat 5 Werte von 0 bis 4, die jeweils Folgendes darstellen:
0 – Nicht initialisiert, der Zustand des Objekts, als es gerade mit new ActiveXObject(MSXML.ServerXMLHTTP.5.0) erstellt wurde.
1 - Zu diesem Zeitpunkt wurde die Open-Methode aufgerufen, aber die Send-Methode wurde nicht zum Senden von Daten verwendet.
2 – Die Sendemethode wurde bereits geladen, um Daten zu senden, aber es ist noch kein Antwortstream verfügbar.
3 – Interagieren und Empfangen von Daten. Zu diesem Zeitpunkt können Sie die Attribute „responseBody“ und „responseText“ verwenden, um einen Teil der erhaltenen Daten abzurufen.
4 - Schließen Sie die Anfrage ab, alle Daten wurden empfangen
Normalerweise müssen wir nur Status 4 bestimmen. Zu diesem Zeitpunkt wurden alle Daten geladen und die erforderlichen Daten können mithilfe der Attribute „responseBody“ oder „responseText“ abgerufen werden.
3. Status HTTP-Antwortstatuscode, der unter normalen Umständen 200 sein sollte. Wenn die angeforderte Ressource nicht vorhanden ist, wird 404 zurückgegeben. Es gibt andere Statuscodes wie Serverfehler 500 usw.
4. statusText HTTP-Antwortstatustext, der zur Beschreibung der Bedeutung des Antwortstatuscodes verwendet wird, z. B. OK in 200 OK, Not Found in 404 Not Found
5. ResponseBody ist das Byte-Array der Antwortdaten. Dies kann direkt in VBScript verwendet werden, muss jedoch in JScript konvertiert werden.
6. ResponseText ruft Antwortdaten in Textform ab
7. ResponseXML gibt die Antwortdaten als XMLDOM-Objekt zurück, was besonders nützlich ist, wenn es sich bei den angeforderten Daten um ein XML-Dokument handelt.
8. ResponseStream-Antwort-Stream-Objekt, dieses Attribut wird nicht häufig verwendet