AJAX ? JavaScript DHTML PHP (serveur) OpenLaszlo : le flash libre XHTML CSS




HTML - DHTML - XHTML - CSS - CMS - JavaScript - AJAX - PHP - XML - OpenLaszlo - Webmaster - Site Web en 10 leçons - DesignWeb - Open Source - Hébérgement - Référencement - Nom de domaine - Adsense - Rentabiliser - Paiement en ligne -

Asynchronous JavaScript and XML : AJAX

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 :
HTML (ou XHTML) pour la structure sémantique des informations ;
CSS pour la présentation des informations ;
DOM et JavaScript pour afficher et interagir dynamiquement avec l'information présentée ;
l'objet XMLHttpRequest pour échanger et manipuler les données de manière asynchrone avec le serveur web.
En alternative au couple XML/XSLT, les applications AJAX peuvent utiliser d'autres technologies: le HTML préformaté, les fichiers texte plats, JSON et JSON-RPC.
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.

AJAX, 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 renvoie une nouvelle page. Ce fonctionnement consomme inutilement une partie de la bande passante, une grande partie du code (X)HTML étant commune 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 navigateurs actuels mettent les éléments communs en cache, donc le chargement de pages nouvelles n'oblige pas le serveur à redonner les mêmes éléments à chaque fois.
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 frameworks pèsent plus de 500 ko !).

AJAX et 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.
Java fournit une technologie à maturité avec un support des threads et un important soutien de la communauté Open Source.
Ruby, et spécialement Ruby on Rails, en tire un fort potentiel de productivité.
PHP possède aussi un fort soutien de la communauté Open Source, notamment la version 5 plus performante sur la gestion du XML en natif.
Perl propose notamment Catalyst.
Python est un langage de scripts complet et largement utilisé mais moins que Java ou PHP sur les serveurs (Google l'utilise largement).
.NET 2.0 de Microsoft développe un framework pour Ajax .Net (MicrosoftAjax .Net).

AJAX, avantages et inconvénients

L'avantage de cette méthode est la vitesse à laquelle une application AJAX répond aux actions de l'utilisateur, dont les actions sont traitées (en partie au moins) localement par le navigateur.
L'utilisateur d'applications AJAX doit autoriser l'exécution de code JavaScript par son navigateur, ce qui peut laisser craindre des problèmes de sécurité. Avec les versions d'Internet Explorer 5 ou 6 pour Windows, il doit aussi autoriser les ActiveX car le composant XMLHTTP n'y est pas natif comme dans ses concurrents (Firefox, Safari, Opera, etc.) ou la version 7. Utilisant des techniques apparentées au XHTML dynamique , les applications AJAX doivent être testées sur chaque navigateur, en raison du non respect des normes officielles.
Un autre inconvénient que l'on peut avancer est la question du référencement puisque les robots d'indexation ne sont pas en mesure d'indexer les contenus engendrés dynamiquement.
Enfin, en modifiant le contexte de navigation sans que l'utilisateur n'en soit nécessairement averti (en fonction de son mode d'accès au Web), AJAX pose de nombreuses questions d'accessibilité. C'est le cas notamment pour les utilisateurs de lecteurs d'écran ou de dispositifs d'agrandissement (loupes virtuelles).

L'avenir d'Ajax

IBM a créé Open AJAX Initiative, un groupe de promotion de cette technologie avec des partenaires tels que 24SevenOffice, Adobe, BEA, Borland, the Dojo Foundation, Eclipse Foundation, Google, Ilog, Yahoo!, Laszlo Systems, Mozilla Corporation, Novell, Openwave Systems, SAP, Oracle, Red Hat, Tibco, Zend et Zimbra.
Le premier résultat de cette initiative est l'AJAX Toolkit Framework[2], un projet qui vise à proposer des outils pour le développement d'applications AJAX dans l'outil de développement Eclipse. Ce projet s'appuie entre autre sur la contribution initiale d'IBM et divers frameworks AJAX open source (tels que Dojo ou Rico).
La fondation Eclipse propose également un outil pour le développement d'applications web basées sur le framework Eclipse, sous le nom de RAP (Rich AJAX Platform). Les applications ainsi construites pourront être déployées côté serveur et seront accessibles par un navigateur web via une génération de code utilisant les principes d'AJAX.
Du coté de Microsoft, un framework est en cours de développement, facilitant la mise en place de site ajax. Une fois n'est pas coutume, ce framework est gratuit chose qui se répend chez Microsoft en ce moment. En parallèle est développé une ASP.NET Ajax Control Toolkit, qui offre de nombreux contrôles « prêts à l’emploi » pour les développeurs utilisant Visual Studio 2005. On y trouve actuellement une trentaine de contrôles mais Microsoft en prévoit 50 à 100, tous fournis avec leur source. Il existe aussi un tutoriel sur le site pour créer ses propres contrôles Toolkit qui utilisent la technologie Ajax .Net.

Un grand merci au wikipedia pour ce document (version originale ici)

JavaScript, la base d'AJAX


XML ou DHTML


Créer vos applications web 2.0 avec OpenLaszlo