AJAX, qui signifie JavaScript et XML asynchrone, est une technique qui permet de mettre à jour les pages Web de manière asynchrone, ce qui signifie que le navigateur n'a pas besoin de recharger la page entière lorsque seulement un petit peu de données sur la page a changé. AJAX transmet uniquement les informations mises à jour vers et depuis le serveur.
Les applications Web standard traitent les interactions entre les visiteurs Web et le serveur de manière synchrone. Cela signifie qu'une chose se produit après une autre; le serveur ne fait pas de multitâche. Si vous cliquez sur un bouton, le message est envoyé au serveur et la réponse est renvoyée. Vous ne pouvez pas interagir avec d'autres éléments de la page tant que la réponse n'est pas reçue et que la page n'est pas mise à jour.
De toute évidence, ce type de retard peut affecter négativement l'expérience d'un visiteur Web - d'où AJAX.
AJAX n'est pas un langage de programmation, mais une technique qui incorpore un script côté client (c'est-à-dire un script qui s'exécute dans le navigateur d'un utilisateur) qui communique avec un serveur Web. De plus, son nom est quelque peu trompeur: alors qu'une application AJAX peut utiliser XML pour envoyer des données, elle peut également utiliser uniquement du texte brut ou du texte JSON. Mais généralement, il utilise un objet XMLHttpRequest dans votre navigateur pour demander des données au serveur et JavaScript pour afficher les données.
AJAX peut accéder au serveur de manière synchrone et asynchrone:
Traitement de votre demande synchroniquement est similaire au rechargement de la page, mais seules les informations demandées sont téléchargées au lieu de la page entière. Par conséquent, utiliser AJAX de manière synchrone est plus rapide que de ne pas l'utiliser du tout - mais cela nécessite toujours que votre visiteur attende que le téléchargement se produise avant que toute autre interaction avec la page puisse continuer. Les gens savent qu'ils doivent parfois attendre qu'une page se charge, mais la plupart des gens ne sont pas habitués à continuer, des retards importants après qu'ils soient sur un site.
Traitement de votre demande asynchrone évite le délai pendant la récupération du serveur car votre visiteur peut continuer à interagir avec la page Web; les informations demandées seront traitées en arrière-plan et la réponse mettra à jour la page au fur et à mesure de son arrivée. De plus, même si une réponse est retardée - par exemple, dans le cas de très grandes données - les visiteurs du site peuvent ne pas s'en rendre compte car ils sont occupés ailleurs sur la page..
Par conséquent, la meilleure façon d'utiliser AJAX est d'utiliser des appels asynchrones dans la mesure du possible. Il s'agit du paramètre par défaut dans AJAX.
Si les appels asynchrones offrent une telle expérience utilisateur améliorée, pourquoi AJAX offre-t-il un moyen de faire des appels synchrones?
Bien que les appels asynchrones soient le meilleur choix la grande majorité du temps, il existe de rares situations où il n'est pas logique de permettre à votre visiteur de continuer à interagir avec la page Web jusqu'à ce qu'un processus côté serveur particulier soit terminé..
Dans beaucoup de ces cas, il peut être préférable de ne pas utiliser du tout AJAX et de simplement recharger la page entière. L'option synchrone dans AJAX est là pour le petit nombre de situations dans lesquelles vous ne pouvez pas utiliser un appel asynchrone mais recharger la page entière n'est pas nécessaire. Par exemple, vous devrez peut-être gérer certains traitements de transaction dans lesquels la commande est importante. Prenons un cas dans lequel une page Web doit renvoyer une page de confirmation après que l'utilisateur a cliqué sur quelque chose. Cette tâche nécessite la synchronisation des demandes.