Les applications Web traditionnelles 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 équivalentes 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énalisant si l'application utilise une bibliothèque Ajax volumineuse (certaines bibliothèques pèsent plus de 500 ko, mais cela reste rare).
L'avantage de cette méthode est d'abord la vitesse à laquelle une application AJAX répond aux actions de l'utilisateur, qui sont traitées (en partie au moins) localement par le navigateur. Respectant en grande partie les standards Web (W3C et IETF), AJAX possède également des qualités de portabilité. Très vite déployé, Ajax permet d'abaisser les coûts de développement de petites applications, ainsi que les coûts de renouvellement de parc informatique ; car AJAX fonctionne avec des ressources matérielles relativement faibles : simples postes clients ne nécessitant pas beaucoup de mémoire (contrairement aux technologies JAVA), simple navigateur, simple serveur Web. Seule condition : choisir un navigateur respectant les standards et acceptant en outre l'emploi du langage JavaScript (et en particulier l'objet XMLHttpRequest), ou bien adapter le code de façon à ce que les pages Web soient lues par tout type de navigateur (ces navigateurs étant de plus en plus rares) ainsi que par les utilisateurs ne souhaitant pas activer les fonctionnalités JavaScript de leur navigateur compatible.
L'utilisateur d'applications Ajax doit en effet autoriser l'exécution de code Javascript par son navigateur, ce qui peut laisser craindre des problèmes de sécurité (cependant, il existe des antivirus bloqueurs de scripts efficaces). N'utilisant pas le composant JavaScript standard XMLHTTP, les versions d'Internet Explorer 5 ou 6 pour Windows doivent autoriser les ActiveX, contrairement aux autres navigateurs (Firefox, Safari, Opera, etc.), cependant la version 7 d'IE est compatible. Il est donc conseillé de tester les applications Ajax sur chaque type de navigateur, en raison du non respect des normes Web par certains éditeurs de navigateurs.
Un autre inconvénient 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, différents cas de failles de sécurité de type « injection de code » ont été signalés en 2005 et 2006 avec des solutions AJAX déployées de façon standard. À cet égard, il faut rappeler que dans leur majorité les applications informatiques déployées de façon standard sont vulnérables. Cette recommandation n'est pas propre à AJAX, elle est valable pour toute technologie et tout développement. Comme pour presque toute application informatique, une sécurisation du code, du serveur et des postes clients est donc nécessaire avec AJAX. Ceci se traduira d'abord par une sécurisation du serveur Web et des bibliothèques de code JavaScript, ainsi que, côté poste client par la mise à jour du navigateur et l'installation d'un antivirus bloqueur de scripts malveillants.
Comme pour tout développement Web, établir une connexion par le protocole sécurisé https est également une solution pour sécuriser les échanges entre les postes clients et le serveur distribuant les pages Web.