1. Was ist AJAX
Im Jahr 2005 erfand Jesse James Garrett von Adaptive Path das Wort Ajax. In seinem veröffentlichten Artikel „Ein neuer Ansatz für Webanwendungen“ gab er Ajax eine klare Definition Technologie zur Zusammenfassung des asynchronen Ladens von Seiteninhalten. Durch Seitenklickereignisse werden kontinuierlich Anfragen an den Server gesendet, und der Server gibt dann die neuesten Daten in Echtzeit zurück. Dies ist die Funktion von AJAX.
Als Fusion mehrerer Ideen und Technologien sind es, wenn man es aufschlüsselt, diese Schlüsselwörter: Asynchrones JavaScript und XML, asynchrones JavaScript und XML. Bei der Verwendung von AJAX sind wir bei der Verwendung dieser Technologien auf jeden Fall unverzichtbar: Verwendung der auf XHTML- und CSS-Standards basierenden Darstellungstechnologie, Verwendung von DOM für dynamische Anzeige und Interaktion, Verwendung von XML und XSLT für den Datenaustausch und -verarbeitung sowie Verwendung von XML HttpRequest für die asynchrone Datenverarbeitung. Rufen Sie JavaScript ab und verwenden Sie es, um die oben genannten Techniken zu kombinieren. Die Kerntechnologie von Ajax ist unter anderem XMLHttpRequest, das als XHR bezeichnet wird.
2. Entwicklungsaussichten
Gmail unterscheidet sich beim Senden und Empfangen von E-Mails nahezu nicht von Outlook Express und erfordert keine Installation von Client-Programmen. Keiner der vorhandenen Browser kann komplexe Bilder verarbeiten wie Desktop-Programme wie PhotoShop. Aber wir können seinen Einfluss und seine Auswirkungen nicht ignorieren.
3. Vorteile (Verbesserung der Benutzererfahrung)
Benutzererfahrung Wenn beispielsweise die Gemeinde, in der sich Ihr Zuhause befindet, aufgrund bestimmter Umstände mit einem Wasserausfall konfrontiert ist, haben die zuständigen Abteilungen dies getan Jetzt zwei angekündigt Es gibt zwei Möglichkeiten: Eine besteht darin, die Wasserversorgung für 8 Stunden vollständig zu stoppen, die Wasserversorgung während dieser 8 Stunden vollständig zu stoppen und nach 8 Stunden wieder in den Normalzustand zurückzukehren. Zweitens wird die Wasserzufuhr 10 Stunden lang nicht vollständig unterbrochen, die Durchflussrate ist jedoch deutlich geringer als zuvor. Welche Methode würden Sie an Ihrer Stelle wählen? Anscheinend ist es Letzteres.
Asynchrone Übertragung ist eine zeichenorientierte Übertragung und ihre Einheit ist ein Zeichen, während die synchrone Übertragung eine bitorientierte Übertragung ist und ihre Einheit ein Rahmen ist Empfänger und Sender sind konsistent.
Asynchron ist im Allgemeinen jede Gruppe ein 8-Bit-Zeichen. Es gibt ein Startbit und ein Stoppbit am Kopf und am Ende jeder Gruppe Die Uhren des Empfängers und des Senders müssen während des Übertragungsprozesses nicht konsistent sein, das heißt Der asynchrone Sender kann diese Gruppen jederzeit senden, und der Empfänger weiß nicht, wann sie ankommen.
Jede asynchron übertragene Information beginnt mit einem Startbit , das den Empfänger darüber informiert, dass die Daten angekommen sind, was dem Empfänger die Möglichkeit gibt, zu antworten, das Datenbit zu empfangen und zwischenzuspeichern Zeit; am Ende der Übertragung zeigt ein Stoppbit die Beendigung der Übertragungsinformationen an. Das Stoppbit ändert das Signal wieder auf 1 und bleibt dort, bis das nächste Startbit eintrifft.
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. Stellen Sie sicher, dass die Abtastgeschwindigkeit des Empfängers mit der Ankunftsgeschwindigkeit der Bits übereinstimmt, damit die sendende und empfangende Partei synchronisiert sind.
Synchronisierung hat auch Vorteile: Synchrone Übertragungen sind in der Regel viel schneller als asynchrone Übertragungen. 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.
Nachteile: Je länger die Datenbits, desto größer 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.
4. Funktionsprinzip und zugrunde liegende Technologie, auf der es funktioniert
Verwenden Sie das XmlHttpRequest-Objekt, um asynchrone Anforderungen an den Server zu senden, Daten vom Server abzurufen und dann zu verwenden Javascript, um das DOM zu betreiben und die Seite zu aktualisieren.
Attribute des XMLHttpRequest-Objekts.
Seine -Attribute sind:
onreadystatechange Der Ereignishandler für das Ereignis, das jedes Mal ausgelöst wird, wenn sich der Status ändert.
ResponseText Die Zeichenfolgenform der vom Serverprozess zurückgegebenen Daten.
ResponseXML Ein DOM-kompatibles Dokumentdatenobjekt, das vom Serverprozess zurückgegeben wird.
Status Vom Server zurückgegebener numerischer Code, z. B. 404 (nicht gefunden) und 200 (bereit).
Status Text-String-Informationen, die den Statuscode begleiten
readyState-Objekt Statuswert
0 (nicht initialisiert) Das Objekt wurde erstellt, aber nicht initialisiert (die Open-Methode wurde noch nicht aufgerufen)
1 (Initialisierung) Das Objekt wurde erstellt, aber die Sendemethode wurde noch nicht aufgerufen
2 (Senden von Daten) Die Sendemethode wurde aufgerufen, aber der aktuelle Status und der 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 wurden zu diesem Zeitpunkt empfangen. Die vollständigen Daten können über Antwortdaten abgerufen werden
Nachteile
Nachteile von AjaxMehrere Ajax-FrameworksJetzt werde ich mich auf die Mängel von Ajax konzentrieren, denn die meisten von uns achten normalerweise auf die Vorteile, die Ajax uns bringt, wie zum Beispiel die 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 Hierzu wird ein versteckter IFRAME erstellt oder verwendet, 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 anmeldeinformationsbasierte 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 den herkömmlichen Formularübermittlungsmodus 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 (wie Mobiltelefone, PDAs usw.) unterstützen Ajax derzeit nicht sehr gut. Wenn wir beispielsweise eine Website mit Ajax-Technologie in einem mobilen Browser öffnen, ist dies derzeit nicht der Fall Unterstützen Sie es, natürlich hat dieses Problem nichts mit uns zu tun.
6.
Zu den derzeit von uns verwendeten Ajax-Frameworks gehören hauptsächlich ajax.dll, ajaxpro.dll und magicajax. dll und das Atlas-Framework von Microsoft. Es gibt keinen großen Unterschied zwischen den beiden Frameworks Ajax.dll und Ajaxpro.dll, aber magicajax.dll ist einfach leistungsfähiger in der Kapselung. 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 im Pageload 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 ihren Code mit einem Dekompilierungstool betrachten.
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 asynchrone Rückrufschnittstelle erwähnen, die wie Ajax 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.
Das obige ist der detaillierte Inhalt vonVor- und Nachteile von AJAX. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!