Heim Backend-Entwicklung XML/RSS-Tutorial Detaillierte Erläuterung des Beispielcodes für die XMLHTTP-Objektkapselungstechnologie

Detaillierte Erläuterung des Beispielcodes für die XMLHTTP-Objektkapselungstechnologie

Mar 27, 2017 pm 04:32 PM

Die Implementierung der Ajax-Technologie basiert hauptsächlich auf xmlhttprequest. Wenn wir sie jedoch für die asynchrone Datenübertragung aufrufen, ist xmlhttp ein kurzfristiger Prozess (er wird nach der Verarbeitung des Ereignisses zerstört). Wenn das Objekt nicht verpackt ist, Es muss in der Rekonstruktion von xmlhttprequest dort verarbeitet werden, wo es aufgerufen werden muss, und erfordert das Schreiben eines großen Codeabschnitts für jeden Aufruf, was wirklich keine gute Idee ist. Glücklicherweise bieten viele Open-Source-Ajax-Frameworks mittlerweile Lösungen für die Kapselung von xmlhttp. Hier verwenden wir den Prototyp-1.4.0.js, der mit Ajaxtags geliefert wird, als Master, um zu sehen, wie das xmlhttp-Objekt in eine wiederverwendbare Methode gekapselt wird.

In Prototype.js wird zunächst eine Variable definiert: Ajax

  var Ajax = {
    getTransport: function() {
     return Try.these(
      function() {return new ActiveXObject('Msxml2.XMLHTTP')},
      function() {return new ActiveXObject('Microsoft.XMLHTTP')},
      function() {return new XMLHttpRequest()}
    ) || false;
  },
   
   activeRequestCount: 0
}
Nach dem Login kopieren

Die Variable gibt eine xmlhttprequest zurück, wenn wir Ajax.getTransport() jedes Mal neu aufrufen Das xmlhttprequest-Objekt wird zurückgegeben.

Eine Basismethode Ajax.Base und der Prototyp der Basismethode werden in der Ajax-Variablen definiert (zunächst verfügt jede Skriptmethode standardmäßig über einen leeren Prototyp, der den Prototyp von Object erbt. Wenn wir die Wenn der Prototyp in Object geändert wird, werden alle Skriptmethoden geändert. Beachten Sie, dass die Methode oder Variable des geerbten Prototyps mit demselben Namen in Ajax.Request geändert wird .

Das Wichtigste im Ajax.Base-Prototyp ist die setOptions-Methode, die wir später verwenden werden.

setOptions: function(options) {
   this.options = {
    method:    'post',
    asynchronous: true,
    parameters:  ''
   }
Nach dem Login kopieren

Anfrage im Prototyp wird durch die Definition des Ajax.Request-Prototyps (Ajax.Request.prototype) implementiert. Wir können Ajax.Request jedoch nicht direkt aufrufen. Der Hauptgrund ist, dass Ajax.Request keinen einheitlichen Verarbeitungsprozess bietet. Und möglicherweise müssen wir die Antwort über die Anfrage erhalten. (Stellen Sie sich vor, der Kunde hat eine Nachricht gesendet, aber nie eine Antwort erhalten. Das wäre sehr ärgerlich.) Der Prototyp kapselt auch die Antwort (Ajax.Responders) für uns, aber beide sind unabhängig voneinander. Wie integriert man sie?

stellt uns im Prototyp zwei Lösungen zur Verfügung, eine ist Ajax.Updater und die andere ist Ajax.PeriodicalUpdater. Beiden ist gemeinsam, dass 3 Parameter übergeben werden müssen:

container :

Die Position, an der die Antwortdaten übermittelt werden sollen, wird durch die ID des HTML-Tags definiert. Wenn Sie beispielsweise die zurückgegebenen Daten in einem

im HTML ausgeben möchten, müssen Sie dies tun Der Container muss in diesen geändert werden. Der Wert von id reicht aus. Wenn der Container nicht gefunden wird, tritt ein Skriptfehler auf.

URL: Das Ziel, an das die

Anfrageanfrage weitergeleitet werden soll. Das Ziel sollte ein Servlet oder Jspservlet sein, da das Anforderungsobjekt nur durch die Methode do*** im Servlet automatisch abgerufen werden kann.

Optionen: Die

-Struktur sollte mit der oben von Ajax.Base definierten Optionsstruktur in setOptions() übereinstimmen. Wenn sie leer ist oder nicht geschrieben wird, der von Ajax definierte Anfangswert. Die Basis wird verwendet (keine wird bei der Übergabe von Parametern verwendet).

Der Unterschied zwischen den beiden besteht darin, dass Ajax.Updater den vollständigen Antworttext nur dann an den Container zurückgibt, wenn der Antworttext vollständig abgerufen wird und keine Ausnahme auftritt. Der Inhalt wird jedoch in den Container geschrieben Der Antworttext. Unabhängig davon, ob er vollständig abgerufen wurde, wird der Inhalt in den Container gefüllt, bis eine Ausnahme auftritt oder der Antworttext vollständig abgerufen wird. In den meisten Fällen sollte die erste Methode verwendet werden, da die erste Methode beim Auftreten einer Ausnahme die Ausnahmeinformationen im Container anzeigt, die zweite Methode jedoch möglicherweise nicht.

Nachdem xmlhttp gekapselt wurde, müssen wir nur noch die drei oben genannten Parameter festlegen. Beachten Sie, dass Sie diese beim Festlegen der Optionsparameter entsprechend der Optionsstruktur in der Basis festlegen müssen Wenn wir die Post-Methode verwenden, können wir auch das Attribut postBody in Opitons festlegen und den zu übertragenden queryString in den Text einfügen. Ein Beispiel für ein Skript, das die Post-Methode zum Übertragen verwendet, lautet wie folgt:

/*表单提交用post方法*/
function doRequest(container,paraments,url){
   var options ={
    method:    'post',
    asynchronous: true,
    postBody: paraments
   };
   new Ajax.Updater(container,url,options);  
}
Nach dem Login kopieren

Endlich Ich muss sagen, dass es sich um ein chinesisches Codierungsproblem handelt. Der Prototyp führt eine Codierungskonvertierung für die übergebenen Parameter durch und jeder übergebene Wert wird über encodeURIComponent verarbeitet. Die Kodierung wird in utf-8 konvertiert. Wenn Sie die Anfrage im Hintergrund erhalten, sollten Sie unabhängig vom Kodierungsformat der Seite einheitlich request.setCharacterEncoding("UTF-8") verwenden, um die Kodierung für die Anfrage festzulegen. Wenn Sie die Post-Methode zum Übertragen von Daten verwenden, wird automatisch Folgendes ausgeführt:

Anfrage. setHeader('Content-type','application/x-www-form-urlencoded') Stellen Sie sicher, dass das Kodierungsformat der übertragenen Daten korrekt ist.

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des Beispielcodes für die XMLHTTP-Objektkapselungstechnologie. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Kann ich eine XML-Datei mit PowerPoint öffnen? Kann ich eine XML-Datei mit PowerPoint öffnen? Feb 19, 2024 pm 09:06 PM

Können XML-Dateien mit PPT geöffnet werden? XML, Extensible Markup Language (Extensible Markup Language), ist eine universelle Auszeichnungssprache, die häufig im Datenaustausch und in der Datenspeicherung verwendet wird. Im Vergleich zu HTML ist XML flexibler und kann eigene Tags und Datenstrukturen definieren, wodurch die Speicherung und der Austausch von Daten komfortabler und einheitlicher werden. PPT oder PowerPoint ist eine von Microsoft entwickelte Software zum Erstellen von Präsentationen. Es bietet eine umfassende Möglichkeit

Was bedeutet der http-Statuscode 520? Was bedeutet der http-Statuscode 520? Oct 13, 2023 pm 03:11 PM

Der HTTP-Statuscode 520 bedeutet, dass der Server bei der Verarbeitung der Anfrage einen unbekannten Fehler festgestellt hat und keine genaueren Informationen bereitstellen kann. Wird verwendet, um darauf hinzuweisen, dass bei der Verarbeitung der Anforderung durch den Server ein unbekannter Fehler aufgetreten ist, der durch Serverkonfigurationsprobleme, Netzwerkprobleme oder andere unbekannte Gründe verursacht werden kann. Dies wird normalerweise durch Serverkonfigurationsprobleme, Netzwerkprobleme, Serverüberlastung oder Codierungsfehler verursacht. Wenn Sie auf einen Fehler mit dem Statuscode 520 stoßen, wenden Sie sich am besten an den Website-Administrator oder das technische Support-Team, um weitere Informationen und Unterstützung zu erhalten.

Verstehen Sie gängige Anwendungsszenarien der Webseitenumleitung und verstehen Sie den HTTP-301-Statuscode Verstehen Sie gängige Anwendungsszenarien der Webseitenumleitung und verstehen Sie den HTTP-301-Statuscode Feb 18, 2024 pm 08:41 PM

Verstehen Sie die Bedeutung des HTTP 301-Statuscodes: Häufige Anwendungsszenarien der Webseitenumleitung. Mit der rasanten Entwicklung des Internets werden die Anforderungen der Menschen an die Webseiteninteraktion immer höher. Im Bereich Webdesign ist die Webseitenumleitung eine gängige und wichtige Technologie, die über den HTTP-301-Statuscode implementiert wird. In diesem Artikel werden die Bedeutung des HTTP 301-Statuscodes und häufige Anwendungsszenarien bei der Webseitenumleitung untersucht. Der HTTP-Statuscode 301 bezieht sich auf eine permanente Weiterleitung (PermanentRedirect). Wenn der Server die des Clients empfängt

http-Anfrage 415-Fehlerlösung http-Anfrage 415-Fehlerlösung Nov 14, 2023 am 10:49 AM

Lösung: 1. Überprüfen Sie den Inhaltstyp im Anforderungsheader. 3. Verwenden Sie das entsprechende Codierungsformat. 5. Überprüfen Sie die serverseitige Unterstützung.

HTTP 200 OK: Verstehen Sie die Bedeutung und den Zweck einer erfolgreichen Antwort HTTP 200 OK: Verstehen Sie die Bedeutung und den Zweck einer erfolgreichen Antwort Dec 26, 2023 am 10:25 AM

HTTP-Statuscode 200: Erkunden Sie die Bedeutung und den Zweck erfolgreicher Antworten. HTTP-Statuscodes sind numerische Codes, die den Status einer Serverantwort angeben. Darunter zeigt der Statuscode 200 an, dass die Anfrage vom Server erfolgreich verarbeitet wurde. In diesem Artikel wird die spezifische Bedeutung und Verwendung des HTTP-Statuscodes 200 untersucht. Lassen Sie uns zunächst die Klassifizierung von HTTP-Statuscodes verstehen. Statuscodes sind in fünf Kategorien unterteilt, nämlich 1xx, 2xx, 3xx, 4xx und 5xx. Unter diesen zeigt 2xx eine erfolgreiche Antwort an. Und 200 ist der häufigste Statuscode in 2xx

Wie verwende ich PHP-Funktionen zur Verarbeitung von XML-Daten? Wie verwende ich PHP-Funktionen zur Verarbeitung von XML-Daten? May 05, 2024 am 09:15 AM

Verwenden Sie PHPXML-Funktionen, um XML-Daten zu verarbeiten: XML-Daten analysieren: simplexml_load_file() und simplexml_load_string() laden XML-Dateien oder Strings. Auf XML-Daten zugreifen: Verwenden Sie die Eigenschaften und Methoden des SimpleXML-Objekts, um Elementnamen, Attributwerte und Unterelemente abzurufen. XML-Daten ändern: Fügen Sie neue Elemente und Attribute mit den Methoden addChild() und addAttribute() hinzu. Serialisierte XML-Daten: Die Methode asXML() konvertiert ein SimpleXML-Objekt in einen XML-String. Praxisbeispiel: Produkt-Feed-XML analysieren, Produktinformationen extrahieren, umwandeln und in einer Datenbank speichern.

Welcher Statuscode wird bei einem HTTP-Anfrage-Timeout zurückgegeben? Welcher Statuscode wird bei einem HTTP-Anfrage-Timeout zurückgegeben? Feb 18, 2024 pm 01:58 PM

Die HTTP-Anfrage läuft ab und der Server gibt häufig den Statuscode 504GatewayTimeout zurück. Dieser Statuscode zeigt an, dass der Server bei der Ausführung einer Anforderung immer noch nicht in der Lage ist, die für die Anforderung erforderlichen Ressourcen abzurufen oder die Verarbeitung der Anforderung nach einer gewissen Zeit nicht abzuschließen. Es handelt sich um einen Statuscode der 5xx-Reihe, der darauf hinweist, dass beim Server ein vorübergehendes Problem oder eine Überlastung aufgetreten ist, was dazu führt, dass die Anfrage des Clients nicht korrekt verarbeitet werden kann. Im HTTP-Protokoll haben verschiedene Statuscodes spezifische Bedeutungen und Verwendungszwecke, und der Statuscode 504 wird verwendet, um Probleme mit der Zeitüberschreitung von Anfragen anzuzeigen. im Kunden

Wie implementiert man HTTP-Streaming mit C++? Wie implementiert man HTTP-Streaming mit C++? May 31, 2024 am 11:06 AM

Wie implementiert man HTTP-Streaming in C++? Erstellen Sie einen SSL-Stream-Socket mit Boost.Asio und der asiohttps-Clientbibliothek. Stellen Sie eine Verbindung zum Server her und senden Sie eine HTTP-Anfrage. Empfangen Sie HTTP-Antwortheader und drucken Sie sie aus. Empfängt den HTTP-Antworttext und gibt ihn aus.

See all articles