Accueil
Accueil Le Club Delphi Kylix C C++ Java J2EE DotNET & C# Visual Basic Access Pascal Dev Web PHP ASP XML UML SQLSGBD Windows Linux Autres
logo

precedent    sommaire    suivant   


Quels sont les principaux avantages et inconvénients d'Ajax?
auteur : denisC
Voila les principaux avantages et inconvénients généralement cités concernant l'utilisation d'Ajax.

Avantages:

  • Interactivité : les interfaces utilisant Ajax offrent une interactivité et une réactivité bien plus importantes que les pages habituels, ou l'utilisateur doit attendre le rechargement complet de sa page.
  • Portabilité : Tous les navigateurs actuels proposent l'ensemble des outils nécessaires à la mise en place d'un moteur Ajax

Inconvénients:

  • Ergonomie : L'utilisation d'Ajax entraine une impossiblité pour l'utilisateur d'utiliser son bouton "Retour" de façon attendue. De la même façon, Ajax pose des problèmes pour la mise en place de signets (bookmarks) sur les pages, ainsi que pour l'indexation du contenu des pages.
  • Temps de latence : Les appels vers le serveur peuvent avoir des temps de latence importants qui sont mal perçus et compris par les utilisateurs.
  • Utilisation de javascript : Le moteur Ajax fait fortement appel au javvascript. Il faut prévoir pour les utilisateurs ayant désactivé Javascript ou ne pouvant pas l'utiliser, une solution de repli acceptable.
  • Complexité des développements : Comme tout composant additionnel Ajax offre des possibilités, mais la mise en place peut se révéler coûteuse au moment du développement.


XHR est asynchrone, qu'est ce que ça veux dire?
auteur : denisC
L'objet xmlHttpRequest est la plupart de temps utilisé en mode asynchrone (qui fait tout sont intérêt).

En mode asynchrone, on donne l'adresse à laquelle l'objet XHR doit aller requeter (via la méthode open) puis sa réaction à faire quand la requête reviendra (via la propriété onreadystatechange). Une fois XHR programmé de cette façon, on l'envoi par la méthode send.

A partir de là, telle une fusée dans l'espace, XHR part au loin et est en mode automatique. JavaScript nous rends la main (à l'utilisateur et/ou au script javascript) en sachant que XHR est correctement programmé.

Si on essaye d'accéder à la réponse associée à l'objet xmlHttpRequest tout de suite après l'avoir envoyé, celle-ci ne sera pas encore disponible.
De la même façon si on réutilise ce même objet XHR dans un script suivant directement le précédent, il y a fort à parier que celui-ci n'aura pas terminé sa requête. En lui passant des nouveaux paramètres avec open, onreadystatechange et send, on lui annule complètement sa mission précédente et on lui en redonne une autre.

Quelles sont les solutions?

Pour l'accès à la réponse de l'objet xmlHttpRequest, la seule et unique solution est d'accéder à ces propriétés (responseText et reponseXml) uniquement dans la méthode liée au onchange de l'objet xmlHtttpRequest.

Pour faire plusieurs requêtes, les solutions sont multiples:

  • Se faire suivre les deux requêtes. Pour cela, il suffit d'indiquer à XHR qu'à son retour (onreadystatechange), il pourra directement repartir pour une autre mission.
  • Effectuer les deux requêtes en parallèle. Pou cela, nous allons devoir créer deux instances de xmlHttpRequest différentes (deux fusées), qui travailleront indépendamment.
  • Réunir les deux requêtes. Généralement, si les deux requêtes se suivent systématiquement, il serait bien plus simple de n'effectuer qu'une seule requête vers le serveur, cette requête ramenant l'information nécessaire pour les deux actions.
  • Dernière possibilité, certainement la plus mauvaise: utiliser XHR en mode synchrone. Dans ce cas, le navigateur sera bloqué tant que la requête ne sera pas revenue.


precedent    sommaire    suivant   

Consultez les autres F.A.Q's


Les sources présentés sur cette pages sont libre de droits, et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright ©2004  Developpez LLC. Tout droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérets. Cette page est déposée à la SACD.

Vos questions techniques : forum d'entraide Accueil - Publiez vos articles, tutoriels, cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter - Copyright 2000..2005 www.developpez.com