Interprétation de la définition et de la philosophie d'Ajax

Tle foyer de cet article est d'apporter des solutions à certains problèmes communs généraux et les questions qui ne manqueront pas de survenir avant ou pendant le développement de Asynchronous JavaScript and XML (Ajax) et Representational State Transfer (REST) applications. Ces questions communes ne sont pas toujours de nature technique, s'appuyant souvent plus vers la théorie ou la philosophie du développement. Le problème avec ce genre de questions est qu'une fois que vous commencez à penser à eux, vous continuez à aller dans un cercle et se termine là où vous avez commencé. L'astuce Pour calculer les réponses est de ne pas poursuivre dans un cercle, mais de s'en tenir aux hypothèses et prendre une décision.

  

Interprétation de la définition et de la philosophie d'Ajax

Jesse James Garrett sur Adaptive Path a inventé l'original definition1 d'Ajax. Citant la définition originale, Ajax incorpore les fonctionnalités suivantes:

• Normes de présentation axée sur l'aide Extensible HyperText Markup Language (XHTML) et Cascading Style Sheets (CSS)

• Affichage dynamique et l'interaction avec le Document Object Model (DOM)

• Échange de données et de manipulation en utilisant le langage de balisage extensible (XML) et Extensible Stylesheet Language Transformations (XSLT)

• Asynchronous récupération des données en utilisant XMLHttpRequest

• JavaScript pour lier le tout dans un mot, Ajax est un style de développement Web qui nécessite AWeb navigateur. L'interface utilisateur du navigateur Web est dynamiquement modifié en utilisant un langage de programmation qui récupère les données que lorsque c'est nécessaire, plutôt que l'approche traditionnelle de rafraîchir la page entière à chaque fois qu'une demande est formulée. Je tiens à souligner les termes dynamiquement et uniquement lorsque cela est nécessaire, Parce que ces termes sont l'essence même de Ajax. Ajax et JavaScript sont des exemples de duck typing2 et latente de type de programmation.

Duck-programmation typé consiste à écrire de code où la définition des classes n'est pas connu à l'avance, mais vous savez que l'objet a un comportement spécifique. La réutilisation est rendue possible par le clonage et l'assemblage d'objets dynamiquement à l'exécution. Objet classique de la programmation orientée consiste à définir sur le comportement du type avant l'exécution. Le code source suivant est un exemple DHTML (Dynamic HTML) et JavaScript application qui illustre l'essence de canard de programmation typé. Source: / website / ROOT / gettingstarted / PrototypeBased.html

 Programmation orientée prototype = obj.runIt variation1;  RunVariation () "/>= obj.runIt Variation2; RunVariation () "/> 
Rien encore

Dans l'exemple, les segments de code en gras de canard illustrent les concepts de programmation typé. Lors du chargement du navigateur Web le code, il sera analysé à partir de haut en bas. Lorsque le code a été analysée, les types suivants et les instances d'objet sera active:

• Définition de variation1 fonctions, Variation2, et RunVariation

• instanciation et la définition de la variable obj, qui référence une instance de plain vanilla Object

• Définition de deux boutons (1 et Variation Variation 2) qui exécutent certains scripts JavaScript quand on clique dessus

• Définition d'un élément div HTML qui a la sortie identifiant RunVariation L'appel de la fonction génère une exception, parce que obj est une instance de plain vanilla objet et n'a pas d'implémentation de la méthode pour runit. Un langage de programmation classiques tels que Java, C # ou C + + n'est pas en mesure de compiler le code JavaScript, parce que le RunVariation fonction exécute une méthode sur un type qui n'est pas défini à posséder la méthode. Quand une méthode d'objet est appelé, comme dans le code source, il est appelé tapant latente. Typage latente est l'identification du type associé à une variable pendant l'exécution de la demande. Dans le cas de l'exemple de code source, cela signifie que le comportement exact de obj n'est pas connu tant que l'application est exécutée. Par conséquent, RunVariation mai mai ou ne pas fonctionner. Dans le code exemple, lorsque les boutons d'entrée sont pressées, le obj.runIt propriété est attribuée à l'une variation1 ou Variation2. Après le bien a été attribué, les boutons d'entrée RunVariation appeler la fonction, qui appelle à son tour obj.runIt propriété. Comme le bien a une valeur assignée, le variation1 fonction ou Variation2 est appelée. L'attribution de la propriété d'une fonction est l'essence de canard de programmation typé. Cela soulève la question, si un langage de programmation emploie des techniques de programmation latent, ce que ça implique de canard tapé la programmation? Et si ce n'est pas, quelles sont les différences? Si un langage de programmation permet la saisie latente, elle n'implique pas de canard de programmation typé. Mais si un langage de programmation prend en charge de canard de programmation typé, il doit soutenir tapant latente. C + + est un excellent exemple d'une langue qui prend en charge les types latente mais ne prend pas en tapant canard. Le code source suivant illustre tapant latente:

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

Dans le code exemple, T est un type qui appartient à un C + + template. Dans la mise en œuvre de CallIt, le t.LatentDefinedMethod méthode est appelée. À partir du code source, le type de T n'est pas apparent, mais quelle qu'elle soit, la méthode LatentDefinedMethod doit être soutenu. C + + ne prend pas en tapant canard, car T ne peut pas avoir la méthode LatentDefinedMethod assignés dynamiquement. Avec l'inclusion de la matrice des fonctionnalités de type in. NET 2.0 et Java 5.0 génériques appelés, vous pourriez être tenté de croire que le typage des génériques latente de soutien.

Le code tel qu'il est écrit en C + + n'est pas possible non plus. NET ou Java, comme les compilateurs ne se plaignent à propos des types de contraintes. Pour se débarrasser des erreurs de compilation en C # ou Java, vous devez limiter T pour un type qui prend en charge la méthode LatentDefinedMethod. Un argument commun contre le canard de programmation typé et en tapant latente est que vous ne savez pas ce que le code va faire jusqu'à ce que vous l'exécuter. En revanche, le C + +,. NET et les environnements de programmation Java, qui nécessitent une définition explicite ou typage statique de types, de faire pour le code stable et robuste. Au moins, c'est l'argument encouragée par des individus qui soutiennent le typage statique. Le typage statique assure qu'un programme se compile et vont bien ensemble, mais elle ne garantit pas que le programme fait ce qu'on attend. Considérons le code suivant, qui illustre comment typage statique peut être dupe:

classe Math (public long add (valeur1 long, long valeur2) (return valeur1 - valeur2;))

un article présenté par Sonja Lande


Disclaimer:Notre site n'est pas responsable du contenu de cet article. Webarticles est une ressource d'information gratuite.
Important: Cet article «Comprendre la définition et la Philosophie de l'Ajax" a été traduit par un logiciel automatique. Nous nous sentons désolés pour les fautes d'orthographe que mai ont eu lieu. Nous vous remercions de votre compréhension.


Online: 333 users browsing the articles directory