AJAX verstehen

8

Da ich in erster Linie ein serverseitiger Programmierer (ASP.NET WebForms) war, versuche ich, mich um AJAX zu kümmern, und zwar außerhalb des "Catch-All" -Ansatzes der Verwendung von UpdatePanels in den Microsoft AJAX-Steuerelementen. Meine Frage hat ein paar Teile:

  1. Ist JavaScript die einzige Option für clientseitige Skripterstellung, die serverseitige Kommunikation unterstützt? Wenn nicht, was sind die Alternativen.
  2. Was ist die "allgemeine" Architektur einer AJAX-Anwendung? Handelt es sich lediglich um JavaScript (clientseitiges Skript), das mit serverseitigen Ressourcen interagiert (Daten / Remote-Funktionen, die über Web-Services verfügbar sind)? Ich weiß, dass dies wie einfache Fragen erscheinen mag, aber angesichts der "Nuancen" von JavaScript wirkt AJAX für mich immer noch ein bisschen wie "schwarze Magie". Danke!
Achilles 29.09.2009, 19:28
quelle

5 Antworten

8

Hier ist die kurze und süße Version.

  1. Nein, aber es ist wirklich die einzige Sprache, die in einer Vielzahl von Browsern unterstützt wird. Wenn Sie nur an IE interessiert sind, können Sie VBScript verwenden, aber es ist kein zusätzlicher Aufwand, JS zu verwenden und breitere Unterstützung zu erhalten, so ziemlich jeder benutzt JS.

  2. AJAX ist nicht so kompliziert wie es scheint. Kurz gesagt, es ist clientseitiger Code, der im Browser ausgeführt wird, um das Layout oder den Inhalt der aktuellen Seite basierend auf Daten zu ändern, die vom Web-Server mithilfe des XMLHttpRequest-Objekts abgefragt werden.

Der komplizierteste Teil ist die unterschiedliche Syntax / das Verhalten der verschiedenen Browser, weshalb die meisten Leute ein Framework verwenden, das die meisten davon abstrahiert.

Hier ist ein einfaches "Hello World" -Skript mit AJAX:

%Vor%

Quelle: Ссылка

Die letzte Komplikation besteht darin, das, was Sie vom Server erhalten, in eine geeignete Form zu parsen, mit der der Code umgehen kann. Die häufigsten Optons sind:

  • JSON: Analysiert mithilfe der JavaScript-Funktion EVAL einfach Objekte. Schön für das Zurückziehen von Informationen über eine einzelne Entität mit mehreren Attribute.

  • XML: Parsen leicht mit den in JS integrierten DOM-Methoden, aber komplexer als JSON. Wenn Sie ein brauchen viel mehr Kontrolle oder wollen XSLT tun verwandelt, das ist eine anständige Option. Theoretisch könnte es als ein wenig sicherer angesehen werden, da es nicht erforderlich ist, beliebige Strings in EVAL zu übergeben, die bösartigen Code auf dem Client ausführen könnten, aber dies ist strittig.

  • Unstrukturierter Text: Wenn Sie nur einen einzelnen Wert zurück haben möchten, den anderen Zwei Methoden können ein bisschen Overkill sein.

JohnFx 29.09.2009, 19:40
quelle
2

AJAX ist im Allgemeinen der Austausch, der Läufer, wenn Sie möchten, von Daten zwischen Client-Seite und Server-Seite, und natürlich umgekehrt.

Der Fortschritt von AJAX ist mit dem Aufstieg von Open Source, dem "Social" Web und einem schnell wachsenden Netzwerk von Amateur- und Profientwicklern einhergegangen. Dies wiederum hat die Entwicklung vieler JavaScript-Frameworks ( jQuery , ) ausgelöst Prototyp , Mootools , Glow usw.), die diese" Nuancen ", die Sie erwähnt haben, im Wesentlichen entfernen oder zumindest sehr gut maskieren.

AJAX ist jedoch nicht einfach ein clientseitiges Skript, das mit einem serverseitigen Skript interagiert. XHTML und CSS zur Darstellung, das Document Object Model zur dynamischen Darstellung und Interaktion mit Daten, XML und XSLT (und neuerdings auch JSON ) für den Austausch, die Manipulation und Anzeige von Daten bzw. das XMLHttpRequest-Objekt für die asynchrone Kommunikation und schließlich für das Zusammenführen dieser Technologien mit JavaScript ( wikipedia ).

AJAX / JavaScript ist nicht die einzige clientseitige Lösung, andere etablierte Lösungen wie Java und Flash haben immer noch ihren Platz. Aber JavaScript wird größtenteils von allen modernen Browsern unterstützt, und tatsächlich nehmen die JavaScript-Engines dieser Browser schnell an Geschwindigkeit zu und eröffnen viel mehr Möglichkeiten für eine nahtlose Interaktion zwischen dem Front-End und dem Back-End / p>

Ich hoffe, ich habe nicht zu viel gewuselt, Sie haben gefragt;)

    
jakeisonline 29.09.2009 19:39
quelle
2
  

Ist JavaScript die einzige Option für   clientseitiges Scripting das wird   serverseitige Kommunikation unterstützen? Ob   Nicht was sind die Alternativen.

Ja, Javascript ist das, was Sie verwenden werden. Auch wenn es andere verfügbare Optionen wie VBScript gibt, sollten Sie Javascript verwenden, da es am weitesten verbreitet ist.

  

Was ist die "allgemeine" Architektur von   eine AJAX-Anwendung? Ist es einfach   JavaScript (clientseitiges Skript)   Interaktion mit Server-Seite   Ressourcen (Daten / Remote-Funktionalität   durch Web-Services verfügbar gemacht)?

Das stimmt genau. Web-Services oder generische Handler liefern die notwendigen Daten im JSON- oder XML-Format, die beide einfach mit Javascript verarbeitet werden können.

Meiner Meinung nach ist die Sache mit AJAX, die die meisten ASP.NET-Webformularentwickler auflöst, der asynchrone Aspekt.

    
Josh Stodola 29.09.2009 19:42
quelle
0

Alle aktuellen Antworten sind gut, aber sie vernachlässigen einen Punkt. AJAX ist kein Skript oder Sprache oder Technologie als solche, Sie können nicht etwas in AJAX schreiben. AJAX ist nur ein Bündelungsbegriff.

Dies ist von Wikipedia :

Wie DHTML und LAMP ist AJAX keine Technologie für sich, sondern eine Gruppe von Technologien. AJAX verwendet eine Kombination aus:

  • HTML und CSS zum Markieren und Formatieren von Informationen.
  • Das DOM, auf das mit JavaScript zugegriffen wird, um die dargestellten Informationen dynamisch anzuzeigen und zu interagieren.
  • Eine Methode zum asynchronen Austausch von Daten zwischen Browser und Server, wodurch Seitenneuladungen vermieden werden. Das XMLHttpRequest (XHR) -Objekt wird normalerweise verwendet, aber manchmal wird stattdessen ein IFrame-Objekt oder ein dynamisch hinzugefügtes Tag verwendet.
  • Ein Format für die Daten, die an den Browser gesendet werden. Zu den gängigen Formaten gehören XML, vorformatiertes HTML, Nur-Text und JavaScript Object Notation (JSON). Diese Daten könnten dynamisch durch eine Art serverseitiges Scripting erstellt werden.
markus 29.09.2009 20:00
quelle
-1

JavaScript alternative VbScript (wenn ich eine nennen muss und hüte dich, es ist MS-Technologie und funktioniert nur mit IE), Aber praktisch gesprochen JavaScript ist eine allgemein akzeptierte Lösung für clientseitige Skripting.

Für Ajax Bitte beziehen Sie sich auf SO Diskussionen:

Mahin 29.09.2009 19:40
quelle