Vous êtes ici : Accueil > Lexique > AJAX

AJAX : Asynchronous JavaScript And XML

AJAX, ou Asynchronous JavaScript And XMLXML et Javascript asynchrones ») est un acronyme désignant une méthode informatique de développement d'applications Web.

À l'image de DHTML ou de LAMP, AJAX n'est pas une technologie en elle-même, mais un terme qui évoque l'utilisation conjointe d'un ensemble de technologies couramment utilisées sur le Web :

Par ailleurs, des technologies dérivées ou composites basées sur AJAX, telles qu'AFLAX, existent également.

Les applications AJAX peuvent être utilisées au sein des navigateurs Web qui supportent les technologies décrites précédemment. Parmi eux, on trouve Mozilla, Firefox, Internet Explorer, Konqueror, Safari ou encore Opera. Toutefois, ce dernier ne supporte pas les transformations XSLT nativement pour les versions antérieures à la 9.0.

IBM a créé Open AJAX Initiative, un groupe de promotion de cette technologie avec des partenaires tels que BEA, Borland, the Dojo Foundation, Eclipse Foundation, Google, Laszlo Systems, Mozilla Corporation, Novell, Openwave Systems, Oracle, Red Hat, Yahoo!, Zend et Zimbra.

Comparaison avec les applications web traditionnelles

Les applications Web permettent aux utilisateurs d'effectuer des choix (suivre un lien, remplir et valider un formulaire). Une requête est alors envoyée au serveur HTTP, qui agit en fonction de l'action et des données reçues, et retourne une nouvelle page. Ce fonctionnement consomme inutilement une partie de la bande passante, une grande partie du code HTML étant commun aux différentes pages de l'application. Et parce qu'une requête au serveur HTTP doit être réalisée à chaque interaction avec l'application, le temps de réponse de l'application dépend fortement du temps de réponse du serveur HTTP. Cela conduit à des interfaces utilisateurs plus lentes que leurs équivalents natives.

Les applications utilisant les techniques AJAX quant à elles peuvent envoyer des requêtes au serveur HTTP pour récupérer uniquement les données nécessaires en utilisant la requête HTTP XMLHttpRequest, et en utilisant la puissance des feuilles de style (CSS) ainsi que le langage Javascript côté client pour interpréter la réponse du serveur HTTP. Les applications sont alors plus réactives, la quantité de données échangées entre le navigateur et le serveur HTTP étant fortement réduite. Le temps de traitement de la requête côté serveur est également légèrement réduit, une partie du traitement étant réalisé sur l'ordinateur d'où provient la requête. En contrepartie, le chargement de la première page peut être pénalisé si l'application utilise une bibliothèque AJAX volumineuse (certains "châssis" (frameWorks) pèsent plus de 500 ko !).

Les approches côté serveur

Un des points critiques dans la programmation avec AJAX est de déterminer l'architecture client/serveur. En théorie, AJAX fonctionne indépendamment du serveur. En pratique, la technologie côté serveur choisie a un impact significatif sur les choix de programmation à disposition.

A noter que Michael Schwarz a développé une bibliothèque permettant d'interfacer AJAX avec .NET. Celle-ci doit notamment permettre d'interroger à partir de JavaScript des méthodes présentes dans la partie serveur de la page à travers AJAX. Toutes les informations sont disponibles sur ajax.schwarz-interactive.de Lien externe.

De plus, il existe des technologies comme Jython (Python), Rhino (Javascript), JRuby (Ruby), et ajaxCFC (ColdFusion) offrant les avantages de productivité des langages de script mais tournant sur un Java basé serveur.

Avantages et inconvénients

Utilisant des techniques apparentées au HTML dynamique, les applications AJAX doivent être testées de manière très complète afin de vérifier qu'elles fonctionnent bien malgré des différences, parfois importantes, entre les navigateurs.

L'avantage de cette méthode est la vitesse à laquelle une telle application répond aux stimuli de l'utilisateur, à condition bien sûr qu'il autorise le Javascript dans son navigateur (ce qui est vrai pour environ 90 % des utilisateurs). S'il utilise Internet Explorer 5 ou 6 pour Windows, il doit aussi autoriser les ActiveX car le composant XML/HTTP n'y est pas natif comme dans ses concurrents (Firefox, Safari, Opera, etc.). Il est dit qu'il le sera dans la version 7 en cours de développement.

source : wikipedia