Heim  >  Artikel  >  Web-Frontend  >  Eine ausführliche Anatomie der Funktionsweise von Ajax

Eine ausführliche Anatomie der Funktionsweise von Ajax

零到壹度
零到壹度Original
2018-04-03 11:11:011471Durchsuche

Dieser Artikel stellt hauptsächlich das Funktionsprinzip der detaillierten Anatomie von Ajax vor. Der Herausgeber findet es ziemlich gut, deshalb werde ich es jetzt mit Ihnen teilen und als Referenz geben. Folgen wir dem Herausgeber, um einen Blick darauf zu werfen

1. Hintergrund der Ajax-Technologie

Es ist unbestreitbar, dass die Popularität der Ajax-Technologie von der starken Werbung von Google profitiert. Gerade aufgrund der umfangreichen Anwendung von Ajax-Technologien wie Google Earth, Google Suggest und Gmail entstand die Popularität von Ajax. Dies ist auch für Microsoft äußerst verlegen, da Microsoft bereits 1997 die Schlüsseltechnologie in Ajax erfunden hatte und mit der Einführung von IE5 im Jahr 1999 begann, das XmlHttpRequest-Objekt zu unterstützen, und Microsoft hatte bereits zuvor damit begonnen, Ajax zu verwenden wird in einigen Produkten verwendet, beispielsweise in einigen Anwendungen im Menü der MSDN-Website. Leider erkannte Microsoft aus unbekannten Gründen nach der Erfindung der Ajax-Kerntechnologie nicht deren Potenzial und entwickelte und förderte sie nicht, sondern legte sie zurück. Ich persönlich finde das sehr seltsam, denn mit den Ressourcen und der strategischen Vision von Microsoft sollte es nicht unmöglich sein, die Aussichten der Ajax-Technologie zu erkennen. Die einzige Erklärung könnte sein, dass sein damaliger Hauptkonkurrent das Verschwinden von Netscape gelähmt und langsam gemacht hat Schließlich machen auch Giganten ein Nickerchen, etwa die strategischen Fehler von IBM gegenüber Microsoft. Es war dieser Fehler, der dazu führte, dass der aktuelle Konkurrent Google in der Ajax-Technologie eine führende Rolle einnahm. Darauf werde ich später noch eingehen, wenn ich auf die Mängel von Ajax eingehen werde. Mittlerweile ist sich Microsoft dieses Problems bewusst und hat daher auch im Ajax-Bereich begonnen, aufzuholen. Beispielsweise hat das Unternehmen einen eigenen Ajax-Framework-Atlas auf den Markt gebracht und auch eine Schnittstelle zur Implementierung asynchroner Rückrufe in .NET 2.0 bereitgestellt, nämlich die ICallBack-Schnittstelle . . Warum ist Microsoft so nervös, dass es bei Ajax hinterherhinkt? Lassen Sie uns nun die tiefgreifende Bedeutung der Ajax-Technologie analysieren.

2. Die Bedeutung der Ajax-Technologie

Wenn es um die Bedeutung der Ajax-Technologie geht, sind wir in unserer täglichen Entwicklung mehr oder weniger mit Ajax konfrontiert , wir achten auf Das Wichtigste ist zweifellos die Verbesserung der Benutzererfahrung. Wenn wir jedoch die zukünftigen Entwicklungstrends von Computern und Internet kombinieren, werden wir feststellen, dass die Ajax-Technologie diesen Trend in einigen Aspekten repräsentiert. Warum sagst du das? Wir wissen, dass Desktop-Software seit dem Aufkommen von Computern immer eine absolut dominierende Stellung eingenommen hat, aber das Aufkommen und der Erfolg des Internets haben in all dem zu subtilen Veränderungen geführt. Viele Menschen glauben, dass Daten und Computersoftware früher oder später vom Desktop ins Internet verlagert werden. Mit anderen Worten, Computer könnten in Zukunft auf sperrige Festplatten verzichten und Daten und Dienste direkt aus dem Internet beziehen. Ich erinnere mich, dass sich ein Professor während meines Studiums einmal ein solches Szenario vorgestellt hat, als er uns eine Vorlesung hielt , es wird keine redundante Software und Programme auf dem Computer-Desktop geben, sondern nur einen IE. Obwohl es so aussieht, als ob wir noch weit von diesem Tag entfernt sind und es noch viele Probleme zu lösen gibt, denke ich, dass dies nicht der Fall ist Traum, sondern eine Realität, die früher oder später wahr werden wird. Nun, das Hauptproblem ist, dass die Internetverbindung instabil ist. Niemand möchte zusehen, wie sein Computer Stück für Stück Daten vom Server herunterlädt Es löst das Problem nur, es fungiert nur als Puffer zwischen dem Server und dem Client und täuscht den Benutzern vor, es gäbe keine Unterbrechung im Dienst. Um genau zu sein, erhöht Ajax nicht die Geschwindigkeit beim Herunterladen von Daten vom Server, sondern macht das Warten nur weniger frustrierend. Aber genau das reichte aus, um eine große Wirkung und einen großen Schock auszulösen, und es hatte tatsächlich enorme Auswirkungen auf die Desktop-Software. Ich werde diesen Punkt anhand eines Beispiels veranschaulichen. Ersteres ist eine typische Desktop-Software, und letzteres ist ein von Ajax implementierter B/S-Modus. Gmail bietet beim Senden und Empfangen von E-Mails fast die gleichen Funktionen wie Outlook Express und erfordert keine Installation eines Client-Programms. Dies ist einer der Hauptgründe, warum Microsoft große Angst vor den Auswirkungen von Ajax hat und in einer kürzlich durchgeführten Umfrage Google als seinen Hauptkonkurrenten in den nächsten zehn Jahren ansah. Natürlich wird durch diese Änderung nicht die gesamte Desktop-Software entfernt. Keiner der vorhandenen Browser kann komplexe Bilder wie Desktop-Programme wie PhotoShop verarbeiten. Aber wir können seinen Einfluss und seine Auswirkungen nicht ignorieren.

3. Über den Namen von Ajax

Der vollständige Name von Ajax lautet „Asynchronous JavaScript“ und „Asynchronous“ bedeutet asynchron, was sich von dem verwendeten unterscheidet in traditioneller synchronisierter Weise.

4. Über Synchronisation und Asynchronität

Die asynchrone Übertragung ist eine zeichenorientierte Übertragung, und ihre Einheit ist eine zeichenorientierte Übertragung, und ihre Einheit ist ein Rahmen. Bei der Übertragung müssen die Uhren des Empfängers und des Senders konsistent sein.

Konkret werden bei der asynchronen Übertragung Bits zur Übertragung in kleine Gruppen unterteilt. Im Allgemeinen handelt es sich bei jeder Gruppe um ein 8-Bit-Zeichen. Am Kopf und am Ende jeder Gruppe müssen die Uhren des Empfängers und des Senders nicht konsistent sein Das heißt, die sendende Partei kann diese Gruppen jederzeit senden, ohne dass die empfangende Partei weiß, wann sie ankommt. Eines der offensichtlichsten Beispiele ist die Kommunikation zwischen der Computertastatur und dem Host. Wenn eine Taste gedrückt wird, wird ein 8-Bit-ASCII-Code an den Host gesendet. Die Tastatur kann den Code jederzeit senden, abhängig von der Eingabe des Benutzers Die interne Hardware muss jederzeit in der Lage sein, ein eingegebenes Zeichen zu empfangen. Dies ist ein typischer asynchroner Übertragungsprozess. Ein potenzielles Problem bei der asynchronen Übertragung besteht darin, dass der Empfänger nicht weiß, wann die Daten eintreffen. Bevor es die Daten erkennt und antwortet, ist das erste Bit vergangen. Es ist, als ob jemand unerwartet von hinten auf Sie zukommt und Sie anspricht, und Sie keine Zeit zum Reagieren haben und die ersten paar Worte verpassen. Daher beginnt jede asynchrone Informationsübertragung mit einem Startbit, das den Empfänger darüber informiert, dass die Daten angekommen sind, was dem Empfänger Zeit gibt, zu antworten, die Datenbits zu empfangen und am Ende der Übertragung zwischenzuspeichern. Ein Stoppbit zeigt den Abschluss an dieser Informationsübermittlung. Konventionell überträgt eine freie Leitung (die keine Daten überträgt) tatsächlich ein Signal, das eine binäre 1 darstellt. Das Startbit der Schrittübertragung bewirkt, dass das Signal 0 wird, und die anderen Bits bewirken, dass sich das Signal mit den übertragenen Dateninformationen ändert. Schließlich ändert das Stoppbit das Signal wieder auf 1, wo es bleibt, bis das nächste Startbit eintrifft. Beispielsweise sendet die Zahl „1“ auf der Tastatur gemäß der erweiterten 8-Bit-ASCII-Kodierung „00110001“. Gleichzeitig muss vor dem 8-Bit-Bit ein Startbit und ein Stoppbit hinzugefügt werden wird folgen.

Die gleichzeitig übertragenen Bitpakete sind viel größer. Anstatt jedes Zeichen einzeln zu senden, jedes mit seinem eigenen Startbit und Stoppbit, werden diese kombiniert und zusammen gesendet. Wir nennen diese Kombinationen Datenrahmen oder einfach Frames.

Der erste Teil des Datenrahmens enthält einen Satz von Synchronisationszeichen. Dabei handelt es sich um eine einzigartige Kombination von Bits, ähnlich dem zuvor erwähnten Startbit, die verwendet wird, um den Empfänger darüber zu informieren, dass ein Rahmen angekommen ist, aber das ist möglich Stellen Sie außerdem sicher, dass die Abtastgeschwindigkeit des Empfängers mit der Ankunftsgeschwindigkeit der Bits übereinstimmt, damit die sendenden und empfangenden Parteien synchronisiert sind.

Der letzte Teil des Frames ist eine End-of-Frame-Markierung. Wie das Synchronisationszeichen handelt es sich auch hier um eine eindeutige Bitfolge, ähnlich dem zuvor erwähnten Stoppbit, die verwendet wird, um anzuzeigen, dass vor Beginn des nächsten Frames keine weiteren Daten anstehen.

Die synchrone Übertragung ist normalerweise viel schneller als die asynchrone Übertragung. Der Empfänger muss nicht jedes Zeichen starten und stoppen. Sobald die Frame-Synchronisationszeichen erkannt wurden, werden sie beim Eintreffen der nächsten Daten empfangen. Darüber hinaus ist auch der Overhead der synchronen Übertragung relativ gering. Beispielsweise kann ein typischer Frame 500 Byte (d. h. 4000 Bit) Daten enthalten, die möglicherweise nur 100 Bit Overhead enthalten. Zu diesem Zeitpunkt erhöhen die hinzugefügten Bits die Gesamtzahl der übertragenen Bits um 2,5 %, was viel kleiner ist als die 25 %ige Steigerung bei der asynchronen Übertragung. Wenn die Anzahl der tatsächlichen Datenbits im Datenrahmen zunimmt, nimmt der Prozentsatz der Overhead-Bits entsprechend ab. Je länger die Datenbits sind, desto größer ist jedoch der zum Zwischenspeichern der Daten erforderliche Puffer, wodurch die Größe eines Frames begrenzt wird. Darüber hinaus gilt: Je größer der Rahmen, desto länger ist die ununterbrochene Zeit, die er auf dem Übertragungsmedium einnimmt. Dies führt im Extremfall dazu, dass andere Benutzer zu lange warten müssen.

Nachdem Sie die Konzepte der Synchronisation und Asynchronität verstanden haben, sollte klarer werden, warum Ajax die Benutzererfahrung verbessern kann. Es verwendet asynchrone Anforderungsmethoden. Wenn beispielsweise in der Gemeinde, in der sich Ihr Haus befindet, aufgrund bestimmter Umstände eine Wasserversorgung unterbrochen werden muss, haben die zuständigen Behörden zwei Pläne angekündigt. Die zweite besteht darin, das Wasser 10 Stunden lang nicht vollständig abzusperren, aber die Durchflussrate ist viel geringer als zuvor , welche Methode würden Sie an Ihrer Stelle wählen? Anscheinend ist es Letzteres.

5. Die in Ajax enthaltene Technologie

Jeder weiß, dass Ajax keine neue Technologie ist, sondern eine Kombination mehrerer Originaltechnologien. Es besteht aus den folgenden Technologien.

1. Verwenden Sie CSS und XHTML zum Ausdrucken.

2. Verwenden Sie das DOM-Modell für Interaktion und dynamische Anzeige.

3. Verwenden Sie XMLHttpRequest, um asynchron mit dem Server zu kommunizieren.

4. Verwenden Sie Javascript zum Binden und Aufrufen.

Von den oben genannten Technologien basieren alle anderen Technologien mit Ausnahme des XmlHttpRequest-Objekts auf Webstandards und wurden häufig verwendet. Obwohl XMLHttpRequest vom W3C noch nicht übernommen wurde, ist es bereits ein De-facto-Standard Fast alle gängigen Browser unterstützen es derzeit.

6. Ajax-Prinzip und XmlHttpRequest-Objekt

Das Prinzip von Ajax besteht einfach darin, eine asynchrone Anfrage an den Server über das XmlHttpRequest-Objekt zu senden und die Daten vom Server abzurufen , und verwenden Sie dann Javascript, um das DOM zu manipulieren, um die Seite zu aktualisieren. Der wichtigste Schritt dabei ist das Abrufen der Anforderungsdaten vom Server. Um diesen Prozess und dieses Prinzip zu verstehen, müssen wir etwas über XMLHttpRequest verstehen.

XMLHttpRequest ist der Kernmechanismus von Ajax. Er wurde erstmals in IE5 eingeführt und ist eine Technologie, die asynchrone Anforderungen unterstützt. Vereinfacht ausgedrückt kann JavaScript Anfragen an den Server stellen und Antworten zeitnah verarbeiten, ohne den Benutzer zu blockieren. Erzielen Sie keinen Refresh-Effekt.

Beginnen wir also mit XMLHttpRequest und sehen, wie es funktioniert.

Schauen wir uns zunächst die Eigenschaften des XMLHttpRequest-Objekts an.

Seine Attribute sind:

    1. onreadystatechange Der Ereignishandler für das Ereignis, das jedes Mal ausgelöst wird, wenn sich der Status ändert.

    2. responseText Die Zeichenfolgenform der vom Serverprozess zurückgegebenen Daten.

    3. responseXML DOM-kompatibles Dokumentdatenobjekt, das vom Serverprozess zurückgegeben wird.

    4. Status Numerischer Code, der vom Server zurückgegeben wird, z. B. die üblichen 404 (nicht gefunden) und 200 (bereit)

    5. Status Begleittext zum Status Code-String-Informationen

    6. readyState Objektstatuswert

0 (nicht initialisiert) Das Objekt wurde erstellt, aber nicht initialisiert (noch die offene Methode aufrufen)
1 (Initialisierung) Das Objekt wurde erstellt, aber die Sendemethode wurde noch nicht aufgerufen
2 (Daten werden gesendet) Die Sendemethode wurde aufgerufen, aber der aktuelle Status und http Header sind unbekannt
3 (Daten werden übertragen) Da die Antwort und der HTTP-Header unvollständig sind, tritt beim Abrufen eines Teils der Daten über ResponseBody und ResponseText ein Fehler auf
 4 (Vollständig) Die Daten werden zu diesem Zeitpunkt über ResponseXml und ResponseText abgerufen.

Aufgrund der Unterschiede zwischen den Browsern sind jedoch möglicherweise unterschiedliche Methoden erforderlich . Dieser Unterschied spiegelt sich hauptsächlich zwischen dem IE und anderen Browsern wider. Im Folgenden finden Sie eine relativ standardmäßige Methode zum Erstellen eines XMLHttpRequest-Objekts.

Wie oben gezeigt, prüft die Funktion zunächst den Gesamtstatus von XMLHttpRequest und stellt sicher, dass dieser abgeschlossen ist (readyStatus=4), also die Daten gesendet wurden. Fragen Sie dann den Anforderungsstatus gemäß den Servereinstellungen ab. Wenn alles bereit ist (Status=200), führen Sie die folgenden erforderlichen Vorgänge aus.
function CreateXmlHttp() {

    //非IE浏览器创建XmlHttpRequest对象
    if (window.XmlHttpRequest) {
        xmlhttp = new XmlHttpRequest();
    }

    //IE浏览器创建XmlHttpRequest对象
    if (window.ActiveXObject) {
        try {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch (e) {
            try {
                xmlhttp = new ActiveXObject("msxml2.XMLHTTP");
            }
            catch (ex) { }
        }
    }
}

function Ustbwuyi() {

    var data = document.getElementById("username").value;
    CreateXmlHttp();
    if (!xmlhttp) {
        alert("创建xmlhttp对象异常!");
        return false;
    }

    xmlhttp.open("POST", url, false);

    xmlhttp.onreadystatechange = function () {
        if (xmlhttp.readyState == 4) {
            document.getElementById("user1").innerHTML = "数据正在加载...";
            if (xmlhttp.status == 200) {
                document.write(xmlhttp.responseText);
            }
        }
    }
    xmlhttp.send();
}

Für die beiden Methoden von XmlHttpRequest, open und send, gibt die open-Methode Folgendes an:

a Der Typ der an den Server übermittelten Daten, d. h. posten oder abrufen.

b. Die angeforderte URL-Adresse und die übergebenen Parameter.

c. Übertragungsmodus, false bedeutet synchron, true bedeutet asynchron. Der Standardwert ist wahr. Wenn es sich um einen asynchronen Kommunikationsmodus handelt (true), wartet der Client nicht auf die Antwort des Servers; wenn es sich um einen synchronen Modus handelt (false), muss der Client warten, bis der Server eine Nachricht zurückgibt, bevor er andere Vorgänge ausführt. Wir müssen die Synchronisierungsmethode entsprechend den tatsächlichen Anforderungen festlegen. Auf einigen Seiten werden möglicherweise mehrere Anforderungen ausgegeben, oder es werden sogar umfangreiche Anforderungen mit hoher Intensität organisiert, geplant und erstellt, wobei die letztere die vorherige überschreibt . Natürlich müssen Sie die Synchronisationsmethode angeben.

Die Send-Methode wird zum Senden von Anfragen verwendet.

Wenn wir den Workflow von XMLHttpRequest kennen, können wir sehen, dass XMLHttpRequest vollständig zum Senden einer Anforderung an den Server verwendet wird und seine Rolle darauf beschränkt ist, aber seine Rolle ist der Schlüssel zur gesamten Ajax-Implementierung, da Ajax ist nichts weiter als zwei Prozesse: das Stellen einer Anfrage und das Beantworten der Anfrage. Und es handelt sich ausschließlich um eine clientseitige Technologie. XMLHttpRequest behandelt das Kommunikationsproblem zwischen dem Server und dem Client, weshalb es so wichtig ist.

Jetzt können wir wahrscheinlich das Prinzip von Ajax verstehen. Wir können uns den Server als eine Datenschnittstelle vorstellen, die einen einfachen Textstream zurückgibt. Natürlich kann dieser Textstream im XML-Format, HTML, Javascript-Code oder einfach nur als Zeichenfolge vorliegen. Zu diesem Zeitpunkt fordert XMLHttpRequest diese Seite vom Server an und der Server schreibt das Textergebnis in die Seite. Dies ist derselbe wie beim normalen Webentwicklungsprozess. Der Unterschied besteht darin, dass der Client das Ergebnis nicht direkt erhält wird auf der Seite angezeigt, aber zuerst von Javascript verarbeitet und dann auf der Seite angezeigt. Viele beliebte Ajax-Steuerelemente wie Magicajax usw. können nur das Ergebnis dieses Prozesses zurückgeben. Im Wesentlichen gibt es keinen großen Unterschied zwischen ihnen.

7. Vorteile von Ajax

Jeder hat im Grunde ein tiefes Verständnis für die Vorteile, die Ajax uns bringt. Hier möchte ich nur kurz auf einige Punkte eingehen:

1. Der größte Punkt ist, dass die Seite nicht aktualisiert wird und mit dem Server innerhalb der Seite kommuniziert, was dem Benutzer ein sehr gutes Erlebnis bietet.

2. Verwenden Sie den asynchronen Modus, um mit dem Server zu kommunizieren, ohne den Betrieb des Benutzers zu unterbrechen, und haben Sie eine schnellere Reaktionsfähigkeit.

3. Ein Teil der zuvor vom Server belasteten Arbeit kann auf den Client übertragen werden, wodurch die ungenutzte Kapazität des Clients für die Verarbeitung genutzt wird, wodurch die Belastung des Servers und der Bandbreite verringert sowie Platz und Breitbandmiete gespart werden Kosten. Und um die Belastung des Servers zu verringern, besteht das Prinzip von Ajax darin, „Daten bei Bedarf abzurufen“, wodurch die Belastung des Servers durch redundante Anforderungen und Antworten minimiert werden kann.

4. Basierend auf standardisierter und weithin unterstützter Technologie, kein Herunterladen von Plug-Ins oder Applets erforderlich.

8. Nachteile von Ajax

Jetzt werde ich mich auf die Mängel von Ajax konzentrieren, da die meisten von uns normalerweise auf die Vorteile achten, die Ajax uns bringt, wie z als Verbesserung der Benutzererfahrung. Die durch Ajax verursachten Mängel wurden ignoriert.

Die unten beschriebenen Mängel von Ajax werden alle dadurch verursacht.

1. Ajax deaktiviert die Zurück-Schaltfläche, wodurch der Zurück-Mechanismus des Browsers zerstört wird. Die Zurück-Schaltfläche ist eine wichtige Funktion einer Standard-Website, funktioniert jedoch nicht gut mit JavaScript. Dies ist ein ernstes Problem, das durch Ajax verursacht wird, da Benutzer häufig hoffen, den vorherigen Vorgang durch Zurückkehren abzubrechen. Gibt es also eine Lösung für dieses Problem? Die Antwort ist ja. Diejenigen, die Gmail verwendet haben, wissen, dass die Ajax-Technologie dieses Problem löst. Sie können jedoch den Ajax-Mechanismus nicht ändern Dies geschieht durch das Erstellen oder Verwenden eines versteckten IFRAME, um die Änderungen auf der Seite zu reproduzieren, wenn der Benutzer auf die Schaltfläche „Zurück“ klickt, um auf den Verlauf zuzugreifen. (Wenn der Benutzer beispielsweise in Google Maps zurückklickt, sucht es in einem versteckten IFRAME und spiegelt die Suchergebnisse dann im Ajax-Element wider, um den Anwendungsstatus auf den damaligen Stand wiederherzustellen.)

Allerdings Obwohl dieses Problem gelöst werden kann, sind die damit verbundenen Entwicklungskosten sehr hoch, was im Widerspruch zur schnellen Entwicklung steht, die das Ajax-Framework erfordert. Dies ist ein sehr ernstes Problem, das durch Ajax verursacht wird.

2. Sicherheitsprobleme

Technologie bringt auch neue Sicherheitsbedrohungen für IT-Unternehmen mit sich. Die Ajax-Technologie ist wie die Einrichtung eines direkten Kanals für Unternehmensdaten. Dadurch können Entwickler unbeabsichtigt mehr Daten und Serverlogik offenlegen als zuvor. Die Ajax-Logik kann vor der clientseitigen Sicherheitsscan-Technologie verborgen werden, sodass Hacker neue Angriffe von Remote-Servern aus starten können. Auch einige bekannte Sicherheitslücken wie Cross-Site-Scripting-Angriffe, SQL-Injection-Angriffe und auf Anmeldeinformationen basierende Sicherheitslücken lassen sich bei Ajax nur schwer vermeiden.

3. Die Unterstützung für Suchmaschinen ist relativ schwach.

4. Den Ausnahmemechanismus des Programms zerstört. Zumindest aus heutiger Sicht zerstören Ajax-Frameworks wie ajax.dll und ajaxpro.dll den Ausnahmemechanismus des Programms. Bezüglich dieses Problems bin ich während des Entwicklungsprozesses darauf gestoßen, aber nach Überprüfung gibt es im Internet fast keine relevante Einführung. Später habe ich selbst ein Experiment durchgeführt, bei dem ich Ajax und traditionelle Formularübermittlungsmodi verwendet habe, um ein Datenelement zu löschen ... was uns beim Debuggen große Schwierigkeiten bereitete.

5. Darüber hinaus gibt es einige andere Probleme, z. B. die Verletzung der ursprünglichen Absicht der URL- und Ressourcenpositionierung. Wenn ich Ihnen beispielsweise eine URL-Adresse gebe und Ajax-Technologie verwendet wird, unterscheidet sich das, was Sie unter der URL-Adresse sehen, möglicherweise von dem, was ich unter dieser URL-Adresse sehe. Dies widerspricht der ursprünglichen Absicht der Ressourcenpositionierung.

6. Einige Handheld-Geräte (z. B. Mobiltelefone, PDAs usw.) unterstützen Ajax derzeit nicht sehr gut. Wenn wir beispielsweise eine Website mit Ajax-Technologie in einem Mobiltelefonbrowser öffnen, wird diese derzeit nicht unterstützt . Natürlich hat dieses Problem nichts mit uns zu tun.

9. Mehrere Ajax-Frameworks

Zu den Ajax-Frameworks, die wir derzeit verwenden, gehören hauptsächlich ajax.dll, ajaxpro.dll, magicajax.dll und das Atlas-Framework von Microsoft. Es gibt keinen großen Unterschied zwischen den beiden Frameworks Ajax.dll und Ajaxpro.dll, während magicajax.dll lediglich leistungsfähiger in der Kapselung ist. Beispielsweise kann es den DataSet-Datensatz direkt zurückgeben . magicajax kapselt es einfach ein. Aber diese Funktion kann uns große Bequemlichkeit bringen. Wenn unsere Seite beispielsweise eine Liste hat und sich die Daten in der Liste ständig ändern, können wir sie mit Magicajax verarbeiten. Wir werden das aktualisierte Listensteuerelement im Magicajax-Steuerelement platzieren und dann das Aktualisierungsintervall beim Seitenladen definieren. Das Prinzip von Atlas ähnelt dem von Magicajax. Eine Sache, die jedoch beachtet werden muss, ist, dass diese Frameworks nur den IE unterstützen und sich nicht mit der Browserkompatibilität befassen. Sie können dies erkennen, indem Sie sich ihre Codes mit Dekompilierungstools ansehen.

Zusätzlich zu diesen Frameworks besteht die am häufigsten verwendete Methode darin, xmlHttpRequest-Objekte selbst zu erstellen. Diese Methode ist flexibler als die vorherigen Frameworks. Darüber hinaus möchte ich hier auch die mit aspnet2.0 gelieferte asynchrone Rückrufschnittstelle erwähnen, die auch eine lokale Nichtaktualisierung erreichen kann, aber ihre Implementierung basiert tatsächlich auf dem xmlhttprequest-Objekt IE. Natürlich ist dies eine Wettbewerbsstrategie von Microsoft.

10. Ajax-Beispiel

Überprüfen Sie, ob der Benutzername registriert ist.

Verwenden Sie zwei Methoden

1 ajax.dll

2 Schreiben Sie das xmlhttprequest-Objekt selbst

10. Einige häufige Fehler in Ajax

1 Konfigurationsproblem

Bei der Konfiguration der Seite beim Seitenladen

11. Der Frontend-Teil wird in der Hintergrundaufrufmethode aufgerufen...

Das obige ist der detaillierte Inhalt vonEine ausführliche Anatomie der Funktionsweise von Ajax. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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