Réponses:
Cela dépend de ce que vous faites et de la façon dont vous le faites.
Si vous remplacez des chargements de pleine page par des demandes AJAX (c'est-à-dire que vous ne faites des appels AJAX que lorsqu'un utilisateur clique sur ce qui aurait été un chargement de pleine page), AJAX réduira la charge du serveur car vous faites (vraisemblablement) moins de traitement et renvoyez moins Les données.
D'un autre côté, si vous ajoutez un type de mise à jour automatique AJAX qui interroge le serveur toutes les quelques secondes, cela pourrait augmenter la charge en fonction de l'utilisateur (cela pourrait ne pas augmenter la charge du serveur si l'utilisateur continue d'appuyer sur F5 pour actualiser manuellement de toute façon, mais la plupart des gens ne le font généralement pas pendant des heures)
Une autre optimisation AJAX consiste à ne charger que plus de données lors du défilement. Dans ce cas, si l'utilisateur ne fait pas défiler vers le bas, c'est un traitement inutile.
Bien sûr, l'implémentation peut fausser les résultats dans les deux cas, ce sont des résultats typiques en supposant des implémentations raisonnablement bonnes.
Bien sûr, cela sert à diminuer la charge du serveur. Regardez cette présentation @ jsconf'09 - pour savoir comment Facebook a utilisé ajax pour ce faire.
Ajax est asynchrone. communication avec le serveur - et vous pouvez l'utiliser de multiples façons. Les gens l'utilisent pour charger du JSON simple sur le Web en temps réel, et tout le reste.
N'oubliez pas - le véritable défi est l' équilibre entre le client et le serveur. Efforcez-vous de faire en sorte que chaque partie fasse son travail de telle sorte que le système soit optimisé et que vous obteniez des avantages évidents de réactivité perçue et de vitesse réelle.
Il y a d'autres facteurs que vous ne considérez pas - dans la plupart des cas, AJAX augmentera la charge du serveur. Dans un scénario typique non ajax, un utilisateur charge une grande page toutes les quelques secondes ou quelques minutes. Oui, cette page unique est un peu plus de travail pour le serveur, mais elle a beaucoup de temps entre les demandes pour récupérer et servir d'autres demandes. Dans un scénario AJAXified, ce chargement de page unique est maintenant des dizaines de petits hits, martelant constamment le serveur et attendant des réponses.
C'est un peu comme la mort de 1000 coupures - aucune des demandes n'est si grande en soi, mais le poids total est un tueur. Surtout lorsque vous commencez à considérer que ces petites demandes sont à peu près aussi chères à servir qu'une demande pleine page. Dans les deux cas, vous parcourez probablement tout un pipeline d'applications Web, frappez une base de données et attendez une réponse tout en étant assis sur une précieuse connexion HTTP.
Voici un exemple de la façon dont ajax peut devenir laid sur le serveur très rapidement. Prenons un "tableau de bord exécutif" typique qui comprend 4 emplacements pour les widgets. Disons que le PDG aime un rapport de vente complet à droite, une liste des 10 meilleurs salariés au milieu et un rapport sur le cours des actions de l'entreprise à droite. Et disons que nous allons le faire via de simples requêtes à distance ajax. Sans prendre en compte les feuilles de style, les images et autres actifs, votre page nécessite désormais 4 allers-retours HTTP (page principale, chacun des rapports du tableau de bord) contre le serveur. Chacun d'eux nécessite une pile Web complète pour s'exécuter - vous allez frapper des bases de données et afficher du HTML à l'aide de votre infrastructure Web, non? Multipliez maintenant le PDG unique par 2000 utilisateurs distants dont certains ont des connexions irrégulières.
À l'inverse, vous pouvez avoir une seule page côté serveur qui exécute et renvoie un squelette HTML ainsi que les données (incluses dans le JSON intégré) pour rendre les rapports. Connexion unique et plus importante, mais moins de battements sur le serveur Web au total, car vous ne gérez pas 4 demandes et ne faites pas tourner 4 pipelines, etc.
Si vous utilisez AJAX pour remplacer le travail que le serveur ferait autrement, alors oui, cela améliorera les performances du serveur. Cependant, vous avez peut-être conçu des choses pour que le serveur en fasse toujours autant et maintenant tout ce qui se passe avec AJAX est au-dessus de ce que le serveur faisait déjà.
Il s'agit principalement d'interface utilisateur, car vous ne devriez rien faire d'autre côté client. Fondamentalement, tout ce que le serveur faisait pour prendre en charge l'interface utilisateur (par exemple, recharger la page avec une mise en page différente en réponse aux entrées de l'utilisateur) le fait avec JavaScript à la place.
Si le rendu HTML est une partie importante du profil de performances de votre serveur d'applications, le déplacement du rendu HTML vers le client peut être un gain de performances sur le serveur d'applications.
Cependant, si le rendu HTML ne représente qu'une petite partie du profil de performances de votre serveur d'applications, plus de demandes signifieront généralement plus de déplacements dans la pile, plus de requêtes, plus de tout sur le serveur d'applications, une perte de performances.
Bien sûr, la seule façon de savoir dans votre cas particulier est de l'essayer.
Vous devez considérer la meilleure façon de mettre en œuvre votre solution. Une forme simple non dynamique n'a pas besoin d'ajax et l'ajouter peut en fait nuire à la performance. Si votre problème est une mauvaise requête, toute l'optimisation ajax dans le monde ne vous apportera pas une augmentation des performances qui sera acceptable.
Si votre serveur est surchargé, vous devez comprendre pourquoi.
Si vous obtenez beaucoup de hits, ajax ne va pas résoudre ce problème, vous avez besoin de plus de capacité. L'ajout d'ajax ne fera qu'augmenter le nombre de demandes que votre serveur doit gérer.
Si vous avez une page compliquée, vous devriez voir s'il y a quelque chose que vous pouvez faire côté client pour réduire la charge sur votre serveur. Si votre page est dynamique mais a vraiment une mise en cache de paquet de données limitée, cela peut être plus avantageux pour l'ajustement côté client.
Et parfois Ajax vous aidera. Lorsque vous avez des formulaires complexes avec des données dynamiques, ajax gagne la journée. Mais si vos requêtes sont compliquées et prennent du temps à s'exécuter, ajax ne résoudra toujours pas votre problème.