|
|
Le terme AJAX a été introduit par Jesse James Garrett (informaticien américain), le 18 février 2005, dans un article sur le site Web Adaptive Path[2]. Depuis, il a rapidement gagné en popularité.
Les éléments qui le composent et leur utilisation pour générer des interactions asynchrones sont antérieurs.
En 2001, l'objet XMLHttp, apparu avec la bibliothèque MSXML, point de départ de cette technique, fut développé à l'origine par Microsoft pour Internet Explorer 5 en tant qu'objet ActiveX, puis intégré en tant qu'objet navigateur natif nommé XMLHttpRequest par Mozilla, ce qui permit aux autres navigateurs de l'intégrer car ActiveX n'est utilisé que par Internet Explorer.
Comparaison avec les applications Web traditionnelles [modifier] 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 (dans le jargon du Web, ces requêtes sont dites « synchrones »). 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 utilisateur 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 ; ces requêtes sont dites « asynchrones ». Les feuilles de style (CSS) sont utilisées pour la présentation des informations au sein des pages Web. Le langage JavaScript côté client est utilisé pour interpréter la réponse du serveur HTTP et pour effectuer des traitements (affichages de menus déroulants, saisies...). 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 réduit, une partie du traitement étant réalisée 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 (certaines bibliothèques pèsent plus de 500 ko, mais cela reste rare).
-- Source
|