7.5  Asynchronous Javascript and XML : AJAX

Classiquement, 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 (figure 7.2). 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.

Figure 7.2 : Modèle classique de l’interaction Web (synchrone)

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. 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 (figure 7.3).

Figure 7.3 : Modèle d’interaction AJAX (asynchrone)