Heim  >  Artikel  >  Web-Frontend  >  Ausführliche Erläuterung der Prinzipien, Vor- und Nachteile von Ajax

Ausführliche Erläuterung der Prinzipien, Vor- und Nachteile von Ajax

php中世界最好的语言
php中世界最好的语言Original
2018-04-04 16:53:291419Durchsuche

Dieses Mal erkläre ich Ihnen ausführlich die Prinzipien, Vor- und Nachteile von Ajax und welche Vorsichtsmaßnahmen für die Verwendung von Ajax gelten. Hier sind praktische Fälle, werfen wir einen Blick darauf.

1. Hintergrund der Ajax-Technologie

Es ist unbestreitbar, dass die Popularität der Ajax-Technologie gerade deshalb von der starken Werbung von Google profitiert Google Earth Die weit verbreitete Anwendung von Ajax-Technologien wie , Google Suggest und Gmail hat zur Popularität von Ajax geführt. 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 waren in unserer täglichen Entwicklung in gewissem Maße mit Ajax konfrontiert 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 seine Auswirkungen und 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

Asynchrone Übertragung ist zeichenorientierte Übertragung, und ihre Einheit ist Zeichen; synchrone Übertragung ist bitorientierte Übertragung, ihre Einheit ist Rahmen, und sie überträgt Die Uhren des Empfängers und des Senders müssen 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, 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.

Unter den oben genannten Technologien basieren alle anderen Technologien mit Ausnahme des XmlHttpRequest-Objekts auf Webstandards und sind weit verbreitet. Obwohl XMLHttpRequest noch nicht vom W3C übernommen wurde, handelt es sich bereits um einen De-facto-Standard Die wichtigsten 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 Anfragen 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 Ereignishandler 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.

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 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();
}

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 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 DataSet und andere Datentypen zurückgeben. Sie kapseln im Wesentlichen nur das Ergebnis dieses Prozesses.

6. 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 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 wir normalerweise hauptsächlich darauf achten, was Ajax bringt Zu den Vorteilen gehört ein verbessertes Benutzererlebnis. 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 unter Gmail verwendete Ajax-Technologie dieses Problem löst. Es ist jedoch nur ein dummer, aber effektiver Weg 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 anmeldeinformationsbasierte 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、一些手持设备(如手机、PDA等)现在还不能很好的支持ajax,比如说我们在手机的浏览器上打开采用ajax技术的网站时,它目前是不支持的,当然,这个问题和我们没太多关系。

8、ajax的几种框架

目前我们采用的比较多的ajax框架主要有ajax.dll,ajaxpro.dll,magicajax.dll 以及微软的atlas框架。Ajax.dll和Ajaxpro.dll这两个框架差别不大,而magicajax.dll只是封装得更厉害一些,比如说它可以直接返回DataSet数据集,前面我们已经说过,ajax返回的都是字符串,magicajax只是对它进行了封装而已。但是它的这个特点可以给我们带来很大的方便,比如说我们的页面有一个列表,而列表的数据是不断变化的,那么我们可以采用magicajax来处理,操作很简单,添加magicajax之后,将要更新的列表控件放在magicajax的控件之内,然后在pageload里面定义更新间隔的时间就ok了,atlas的原理和magicajax差不多。但是,需要注意的一个问题是,这几种框架都只支持IE,没有进行浏览器兼容方面的处理,用反编译工具察看他们的代码就可以知道。

除了这几种框架之外,我们平时用到的比较多的方式是自己创建xmlHttpRequest对象,这种方式和前面的几种框架相比更具有灵活性。另外,在这里还提一下aspnet2.0自带的异步回调接口,它和ajax一样也可以实现局部的无刷新,但它的实现实际上也是基于xmlhttprequest对象的,另外也是只支持IE,当然这是微软的一个竞争策略。

9.ajax应用举例

以上内容是转载高人写的资料,下面我将我在项目中实际应用给出个例子,这个例子是这样的:我参与的一个项目的值班安排模块里,选择值班人时,弹出的是个联系人树型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 ['userIds']!=""&& retVal ['userIds']!=null)//联系人id集合格式1,2,3,4
{
var PostUrl=" ../../../Application/CallBoard/GetDepartMentByUid.aspx?userIDs="+objRetVal['userIds']+"";//后台处理页面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 = '" +builder+"'");// formData.RBZBRY为一文本控件,将显示值班人员新格式
}
}

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

Ajax请求async有哪些方式?应该如何使用

AJAX实现无刷新数据分页

Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung 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