Das Verständnis der Definition und Philosophie von Ajax

Ter Schwerpunkt dieses Artikels ist es, Lösungen für einige häufige, allgemeine Probleme und Fragen, die verpflichtet, vor oder während der Entwicklung von Asynchronous JavaScript and XML (Ajax) und Representational State Transfer (REST)-Anwendungen entstehen, zu erbringen. Diese gemeinsamen Fragen sind nicht immer technischer Natur, oft gestützt mehr auf Theorie und Philosophie der Entwicklung. Das Problem bei diesen Arten von Fragen ist, dass, sobald Sie beginnen, daran zu denken, Sie halten zu gehen in einem Kreis und endet dort, wo Sie angefangen haben. Der Trick, um herauszufinden, die Antwort ist nicht zu halten im Kreis drehen, sondern auch mit den Annahmen Stock und eine Entscheidung treffen.

  

Das Verständnis der Definition und Philosophie von Ajax

Jesse James Garrett in Adaptive Path, geprägt von der ursprünglichen Definition1 Ajax. Unter Angabe der ursprünglichen Definition, Ajax umfasst die folgenden Features:

• Auf Standards basierende Präsentation mit Extensible Hypertext Markup Language (XHTML) und Cascading Style Sheets (CSS)

• Dynamische Anzeige und Interaktion mit dem Document Object Model (DOM)

• Datenaustausch und-manipulation mit Extensible Markup Language (XML) und Extensible Stylesheet Language Transformations (XSLT)

• Asynchrone Datenabfrage unter Verwendung von XMLHttpRequest

• JavaScript zu binden alles zusammen, kurz gesagt, Ajax ist eine Art von Web-Entwicklung, die AWeb Browser erfordert. Die Benutzeroberfläche des Web-Browsers wird dynamisch mithilfe einer Programmiersprache, die Daten abruft, nur wenn nötig, anstatt den herkömmlichen Ansatz der erfrischenden die gesamte Seite jedes Mal, wenn ein Antrag gestellt wird. Ich möchte die Begriffe markieren dynamisch und nur wenn nötig, Denn diese Begriffe sind die Essenz von Ajax. Ajax und JavaScript sind Beispiele für Duck Typing2 und latent-Programmier -.

Duck-Typisierung ist über das Schreiben von Code, in dem die Definition der Klassen ist nicht vor der Zeit bekannt, aber Sie wissen das Objekt verfügt über ein spezifisches Verhalten. Wiederverwendung wird durch das Klonen und die Zusammenstellung der Objekte dynamisch zur Laufzeit. Klassische objektorientierte Programmierung ist über die Definition des Verhaltens der Typ vor der Ausführung. Der folgende Quelltext ist ein Beispiel für Dynamic HTML (DHTML) und JavaScript-Anwendung, die das Wesen der Enten-Typisierung zeigt. Quelle: / website / ROOT / GettingStarted / PrototypeBased.html

 Prototype-based Programming obj.runIt = Variation1;  RunVariation () "/>obj.runIt = Variation2; RunVariation () "/> 
Es wurde noch nichts

In dem Beispiel, der kühne Code-Segmente zeigen die Ente typisierte Programmier-Konstrukte. Wenn der Web-Browser lädt den Code, wird von oben nach unten analysiert werden. Wenn der Code wurde analysiert, die folgende Art und Objekt-Instanzen tätig sein wird:

• Definition der Funktionen Variation1, Variation2 und RunVariation

• Instanziierung und Definition der Variablen obj, die ein Plain-Vanilla-Objekt-Instanz verweist

• Definition der beiden Tasten (Variante 1 und Variante 2), dass einige JavaScript ausführen, wenn darauf geklickt

• Definition eines HTML-div-Element, das das Kennzeichen Ausgabe Aufruf der Funktion RunVariation hat generiert eine Ausnahme, weil obj ist ein Plain-Vanilla-Objekt-Instanz und hat keine Implementierung der Methode für runit. Eine klassische Programmiersprachen wie Java, C # oder C + + ist nicht in der Lage, den JavaScript-Code zu kompilieren, da die Funktion RunVariation eine Methode führt zu einem Typ, der nicht definiert ist, um die Methode zu besitzen. Wenn ein Objekt Methode aufgerufen wird, wie in der Source-Code, spricht man von latenten eingeben. Latent Eingabe ist die Identifizierung der Art mit einer Variablen während der Laufzeit der Anwendung beteiligt werden. Im Falle des Quellcodes beispielsweise, dass das genaue Verhalten von obj bedeutet, ist nicht bekannt, bis die Anwendung ausgeführt wird. Daher kann RunVariation oder nicht. In dem Beispiel-Code, wenn die Eingabe Tasten gedrückt werden, das Eigentum obj.runIt ist entweder Variation1 oder Variation2 zugeordnet. Nach dem Eigentum zugewiesen wurde, rufen Sie die INPUT-Tasten die Funktion RunVariation, aufruft, der wiederum die Eigenschaft obj.runIt. Da die Eigenschaft ein Wert zugewiesen wurde, wird die Funktion Variation1 oder Variation2 aufgerufen. Die Zuordnung der Eigenschaft, eine Funktion ist das Wesen der Enten-Typisierung. Damit stellt sich die Frage, ob eine Programmiersprache latente Programmiertechniken beschäftigt, bringt das mit sich Enten-Typisierung? Und wenn nicht, was sind die Unterschiede? Wenn eine Programmiersprache latente Eingabe unterstützt, bedeutet dies nicht, Enten-Typisierung. Aber wenn eine Programmiersprache unterstützt Enten-Typisierung, muss es latente eingeben. C + + ist ein hervorragendes Beispiel für eine Sprache, die latente Typen unterstützt aber nicht unterstützt Duck Typing. Der folgende Quellcode zeigt latente eingeben:

Klasse LatentTypeCaller <T> (public void CallIt (T t) (t.LatentDefinedMethod ();))

In dem Beispiel-Code, ist T ein Typ, der gehört zu einer C + + Templates. Bei der Durchführung des CallIt, ist die Methode t.LatentDefinedMethod aufgerufen. Aus dem Quellcode, ist die Art der T nicht offensichtlich, aber was immer es ist, die Methode LatentDefinedMethod muss unterstützt werden. C + + nicht unterstützt Duck Typing, weil T nicht die Methode haben LatentDefinedMethod dynamisch zugewiesen. Mit der Einbeziehung der Template-Typ-Funktionalität in. NET 2.0 und Java 5.0 Generics genannt, könnte man versucht sein, dass Generika Unterstützung latente Eingabe glauben.

Der Code in C + + geschrieben ist nicht möglich, in beiden. NET oder Java, die erheben, über ungezwungene Art würden sich beschweren. Um der Compiler-Fehler in C # oder Java zu befreien, müssen Sie T, um eine Art, dass die Methode LatentDefinedMethod unterstützt einschränken. Eine gemeinsame Argument gegen Ente typisierte Programmier-und latenten Eingabe ist, dass Sie nicht wissen, was der Code, bis Sie ausführen. Im Gegensatz dazu die C + +,. NET-und Java-Entwicklungsumgebungen, die explizite Definition oder statische Typisierung der Typen benötigen, sorgen für stabilen und robusten Code. Zumindest, dass das Argument von Personen, die statische Typisierung Unterstützung gefördert wird. Statische Typisierung wird sichergestellt, dass ein Programm kompiliert und passt zusammen, aber es garantiert nicht, dass das Programm das tut, was erwartet wird. Betrachten Sie den folgenden Code, der veranschaulicht, wie statische Typisierung kann täuschen:

Klasse Math (public long add (value1 lange, lange Wert2) (return wert1 - wert2;))

Ein Artikel eingereicht von Sonja Lande


Disclaimer:Unsere Website ist nicht verantwortlich für den Inhalt dieses Artikels. Webarticles ist eine kostenlose Informationsquelle.
Wichtig: Dieser Artikel "Das Verständnis der Definition und Philosophie von Ajax" wurde durch ein automatisches Software übersetzt. Wir fühlen uns leid für alle Rechtschreibfehler, die möglicherweise aufgetreten sind. Vielen Dank für Ihr Verständnis.


Online: 312 users browsing the articles directory