Heim  >  Artikel  >  Web-Frontend  >  Eine kurze Analyse der Prinzipien, Vor- und Nachteile von Ajax

Eine kurze Analyse der Prinzipien, Vor- und Nachteile von Ajax

韦小宝
韦小宝Original
2018-01-10 09:56:221504Durchsuche

Dieser Artikel beginnt mit dem Hintergrund und den Prinzipien der Ajax-Technologie, dem Namen von Ajax, den in Ajax enthaltenen Technologien usw. und stellt die Prinzipien, Vor- und Nachteile von Ajax vor. In diesem Artikel werden die Prinzipien, Vor- und Nachteile von Ajax ausführlich vorgestellt. Interessierte Freunde lernen bitte gemeinsam

1 >Es ist unbestreitbar, dass die Popularität der Ajax-Technologie von der starken Werbung von Google profitiert hat. Gerade die weit verbreitete Anwendung der Ajax-Technologie wie Google Earth, Google Suggest und Gmail ist der Grund für 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

Wir alle sind in unserer täglichen Entwicklung in gewissem Maße mit Ajax in Berührung gekommen Es kommt auf Ajax an. Was die Bedeutung der Technologie betrifft, legen wir zweifellos den größten Wert auf 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. Um ehrlich zu sein, ist es nicht so sehr Dadurch wird das Problem lediglich maskiert. Es fungiert lediglich als Puffer zwischen dem Server und dem Client und täuscht den Benutzern vor, dass es keine Unterbrechung des Dienstes gäbe. 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 ist Asynchronous ist anders. Die in der traditionellen Webentwicklung verwendete Synchronisationsmethode.

Über Synchronisation und Asynchronität

Die asynchrone Übertragung ist eine zeichenorientierte Übertragung und ihre Einheit ist ein Zeichen. Die synchrone Übertragung ist eine bitorientierte Übertragung und ihre Einheit ist ein Rahmen erforderlich, um konsistent zu 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, Daten zu empfangen und zwischenzuspeichern. Bits am Ende der Übertragung, ein Stopp Bit zeigt das Ende der Informationsübertragung an. 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, 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 sendende und empfangende Partei synchronisiert sind.

Der letzte Teil des Frames ist eine End-of-Frame-Markierung. Wie das Synchronisationszeichen handelt es sich auch 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.

Synchronisierte Übertragungen sind normalerweise 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. 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.

Während dieser 10 Stunden wurde der Wasserfluss nicht vollständig unterbrochen, aber die Durchflussrate war nach 10 Stunden wieder normal warst du? Anscheinend ist es Letzteres.

4. 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.

5. Ajax-Prinzip und XmlHttpRequest-Objekt

Das Prinzip von Ajax besteht einfach darin, eine asynchrone Anfrage über das XmlHttpRequest-Objekt an den Server zu senden, Daten vom Server abzurufen und dann Javascript für den Betrieb zu verwenden das DOM und aktualisieren Sie die Seite. 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.

Also fangen wir mit XMLHttpRequest an und sehen, wie es funktioniert.

Werfen wir zunächst einen Blick auf die Eigenschaften des XMLHttpRequest-Objekts.

Seine Attribute sind:

onreadystatechange Event-Handler Programm für Ereignisse, die durch jede Zustandsänderung ausgelöst werden.

responseText gibt die Zeichenfolgenform der Daten vom Serverprozess zurück.

responseXML Das DOM-kompatible Dokumentdatenobjekt, das vom Serverprozess zurückgegeben wird.

Status ist der vom Server zurückgegebene numerische Code, z. B. die üblichen 404 (nicht gefunden) und 200 (bereit).

Status Textzeichenfolgeninformationen, die den Statuscode begleiten

readyState Objektstatuswert

0 (nicht initialisiert) Das Objekt wurde erstellt, aber nicht initialisiert (die Open-Methode wurde noch nicht aufgerufen)

1 (Initialisiert) Das Objekt wurde erstellt , aber die Sendemethode wurde noch nicht aufgerufen

2 (Daten senden) Die Sendemethode wurde aufgerufen, aber der aktuelle Status und der HTTP-Header sind unbekannt

3 (Daten werden übertragen) Ein Teil der Daten wurde empfangen, da die Antwort und der HTTP-Header unvollständig sind. Zu diesem Zeitpunkt werden sie über „ResponseBody“ und „ResponseText“ abgerufen. Einige Daten enthalten Fehler.

4 (Vollständig) Die Daten wurden empfangen. Derzeit können die vollständigen Antwortdaten über „ResponseXml“ und „ResponseText“ abgerufen werden. Aufgrund der Unterschiede zwischen den Browsern sind für die Erstellung eines XMLHttpRequest-Objekts 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.


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 TestAjax()
{
var data=document.getElementByIdx("username").value;
CreateXmlHttp();
if(!xmlhttp)
{
alert("创建xmlhttp对象异常!");
return false;
}
xmlhttp.open("POST",url,false);
xmlhttp.onreadystatechange=function()
{
if(xmlhttp.readyState==4)
{
document.getElementByIdx("user1").innerHTML="数据正在加载...";
if(xmlhttp.status==200)
{
document.write(xmlhttp.responseText);
}
}
}
xmlhttp.send();
}


Wie oben gezeigt, überprüft die Funktion zunächst den Gesamtstatus von XMLHttpRequest und stellt sicher, dass es abgeschlossen wurde (readyStatus= 4), das heißt Die Daten wurden gesendet. Fragen Sie dann den Anforderungsstatus gemäß den Servereinstellungen ab. Wenn alles bereit ist (Status=200), führen Sie die folgenden erforderlichen Vorgänge aus.

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 angeben. Auf einigen Seiten werden möglicherweise mehrere Anforderungen oder sogar umfangreiche Anforderungen mit hoher Intensität ausgegeben, die organisiert, geplant und erstellt werden. Letztere überschreiben die vorherige . Natürlich müssen Sie die Synchronisationsmethode angeben.

Sendemethode 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 ist so wichtig, weil es die Kommunikation zwischen dem Server und dem Client abwickelt.

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 DataSet und andere

Datentypen

zurückgeben. Sie kapseln im Wesentlichen nur das Ergebnis dieses Prozesses.

6. Vorteile von Ajax Jeder hat ein tiefes Verständnis für die Vorteile, die Ajax uns bringt. Hier möchte ich nur kurz darauf eingehen Sprechen Sie über ein paar Punkte:

1. Der größte Punkt ist, dass die Seite nicht aktualisiert wird und innerhalb der Seite mit dem Server 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 schnellere Antwortmöglichkeiten zu haben.

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 und 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 ist es nicht erforderlich, Plug-Ins oder kleine Programme herunterzuladen.

7. 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 beispielsweise die Verbesserung der Benutzererfahrung. Die durch Ajax verursachten Mängel wurden ignoriert.

Die unten beschriebenen Mängel von Ajax werden alle durch seine Angeborenheit 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. 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. Der Ausnahmemechanismus des Programms wurde 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 (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.

8. Mehrere Ajax-Frameworks

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, 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 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 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.

9.ajax-Anwendungsbeispiel

以上内容是转载高人写的资料,下面我将我在项目中实际应用给出个例子,这个例子是这样的:我参与的一个项目的值班安排模块里,选择值班人时,弹出的是个联系人树型TreeView结构图,点开哪个部门,然后部门下的联系人就展开了,原先是这样的,选择好某些联系人后,哪天白天或晚上的值班人就是这样的格式”小A,小B”,但是现在要求这样的格式”小A(部门一),小B(部门二)”这里假设小A属于部门一,小B属于部门二。由于选择联系人是纯前台javascript的操作的,这里要通过联系人userlist表中的部门id,来取得部门的名称,也就是通过前台取后台的数据,这个在系列五里我也阐述过,下面给出代码:


var param= "date=<%=stryear%>/<%=strmonth%>/" + x <%=stryear%><%=strmonth%>
+"&Type=" + type
+"&Other=" + eval_r("formData.RBOTHER"+x+".value")
+"&ZBRY=" + eval_r("formData.RBZBRY"+x+".value")
+"&ZBRYID=" + eval_r("formData.RBZBRYID"+x+".value")
+"&Demo=" + eval_r("formData.RBDEMO"+x+".value")
+"&id=" + eval_r("formData.RBZBID"+x+".value");//传递的参数
var retVal = window.showModalDialog( "chooseUsers.asp?"+param,this, "dialogWidth=280px; dialogHeight=500px; help=no; status=no; scroll=no; resizable=yes; ");
//弹出对话框取得联系人
//ajax调用服务器端方法取到部门名称
if(retVal [&#39;userIds&#39;]!=""&& retVal [&#39;userIds&#39;]!=null)//联系人id集合格式1,2,3,4
{
var PostUrl=" ../../../Application/CallBoard/GetDepartMentByUid.aspx?userIDs="+objRetVal[&#39;userIds&#39;]+"";//后台处理页面url
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");//新建一个xmlhttprequest对象
xmlHttp.open("POST", PostUrl, false);
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xmlHttp.send("");
var builder= xmlHttp.responseText; //将值传递回来,拼成了新格式
eval_r("formData.RBZBRY"+x+".value = &#39;" +builder+"&#39;");// formData.RBZBRY为一文本控件,将显示值班人员新格式
}
}

以上所述是小编给大家介绍的Ajax的原理及优缺点,希望对大家有所帮助!

相关推荐:

AJAX显示加载中并弹出图层遮挡页面

Ajax与mysql数据交互实现留言板功能实例详解

Ajax实现模拟关键字智能匹配搜索效果实例教程

Das obige ist der detaillierte Inhalt vonEine kurze Analyse der Prinzipien, Vor- und Nachteile 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