TUTORIEL CLIENTS WEB 
8 conseils pour le développement Ajax
Pour une utilisation mesurée d'une technique aujourd'hui très en vogue : éviter de casser les conventions, indiquer les changements, conserver les ressources... (04/11/2005)
Le développement d'applications Web réactives devient aujourd'hui plus qu'un phénomène de mode : face à l'accueil positif donné à cette réactivité, et malgré le fait qu'elle brise certains fonctionnements-clefs du Web (comme le bouton Retour), Ajax devient une obligation si l'on veut être considéré "Web 2.0" - ce qui ne signifie du reste pas grand chose en soi.

  Forum

Réagissez dans les forums de JDN Développeurs

Seulement, la technique Ajax, qui combine les usages de technologies connues (JavaScript et XML) au sein d'une appellation facilement reconnaissable, demande une certaine familiarité de ses composantes pour être efficace et utile au plus grand nombre.

La période actuelle est une période de découverte : nombre de développeurs se sont penchés sur l''utilisation des techniques Ajax (et associées, comme les frames cachées) pour des projets de taille. Si des sites commes GMail ou GMaps tendent à démontrer que cela est possible, la conception d'applications reste mystérieuse...

Pour ne pas plonger dans l'Ajax à l'aveuglette, voici donc quelques pistes à suivre pour réussir l'intégration de cette technique à votre application Web.

1) Utiliser Ajax à bon escient
Aussi utile qu'Ajax puisse sembler, cette technique n'est pas forcément pour tout le monde. Avant de se lancer dans "une application Ajax", il faut tout d'abord prévoir ce que sera cette application, et si Ajax apporte réellement une plus-value. Si la seule idée de départ du projet est de "faire comme Untel, mais avec Ajax", le succès de l'application a peu de chance de dépasser celui d'Untel... L'intérêt d'Ajax est avant tout d'améliorer l'expérience de l'utilisateur face au produit, pas de le surprendre avec des effets graphiques gratuits.

2) Limiter Ajax au nécessaire
Dans le même ordre d'idée, il faut également mesurer son usage d'Ajax. Si les applications tout-Ajax sont aujourd'hui monnaie courante, avec l'ensemble de l'interface et des données encapsulées dans du JavaScript, le véritable apport d'Ajax se fera avant tout dans le sepoudrage de fonctionnalités là où elles prouvent leur utilité. De la même manière que les usages de Flash se sont considérablement assagis depuis les premières années, il est probable qu'Ajax servira principalement à l'avenir à dynamiser une partie d'une interface autrement "statique".

Par ailleurs, alléger au maximum l'affichage dépendant d'Ajax permet de soulager non seulement le serveur, mais également le client : une application reposant entièrement sur JavaScript peut se révéler bien plus lente qu'une application classique.

3) Eviter des casser les conventions
L'un des principaux points faibles d'Ajax, tout comme pour Flash, est de rendre inutilisable le clic sur le bouton Retour. Dans une application Web chargeant toutes ses données via Ajax, le clic sur Retour ne renverrait pas sur l'affichage précédent, mais plus probablement sur la page d'accueil du site (avant le lancement de toute requête Ajax), voire sur le site précédent dans l'historique. Cet historique peut de son côté être manipulé pour renvoyer une page voulue au clic sur ce fameux bouton, mais c'est une complication supplémentaire.

On peut également ne pas y voir un problème, du fait que les sites dynamiques ne gèrent pas non plus ce bouton de manière idéale (cliquer dessus après avoir effacé un mail, fera apparaître le mail effacé via la page de cache), et qu'ils s'en sortent bien...

4) Conserver les ressources
Même de nos jours, où les coûts de la bande passante, de la mémoire vive ou de serveurs puissants ont considérablement baissé, l'utilisation d'une technique comme Ajax relance le besoin d'une attention particulière portée à ces questions. Le nombre de chargements peut être assez fort, et en comptant sur le fait que la plupart des navigateurs ne peuvent gérer que deux à quatre connexions à la fois, il faut s'assurer à tout moment qu'une donnée chargée est une donnée utile à l'utilisateur.

En clair, même si l'avantage fondamental d'Ajax est sa possibilité de lancer des chargements asynchrones, il faut veiller à ne pas charger trop de données en même temps. Le risque alors serait grand de voir le navigateur étouffer sous le poids du fichier JavaScript chargé, ou le serveur sous les requêtes répétées.

5) Indiquer les changements
Ajax est une technique nouvelle, et nombre d'utilisateurs sont encore habitués au fonctionnement du Web habituel : un clic charge une nouvelle page. Avec Ajax, ce clic modifie une partie de la page, ce qui peut en décontenancer plus d'un. Il faut dès lors s'efforcer d'indiquer les chargements en cours et les modifications faites.

En effet, Ajax n'est pas forcément extrêmement rapide ni, au contraire, extrêmement lent. Il faut donc prévoir de faire patienter l'utilisateur en cas de chargement long, ainsi que de lui indiquer les nouveautés sur la page en cas de chargement rapide - au point où l'oeil ne voit pas le changement arriver.

GMail a résolu le premier problème en affichant une petit "Loading" rouge entre chaque changement d'état. L'utilisateur sait dès lors que ses données sont en cours de rapatriement. De l'autre côté, les développeurs de 37signals ont mis au point une technique intéressante : la Yellow Fade Technique. Celle-ci affiche la modification de la page sur un fond coloré qui disparaît en quelques secondes. La popularité de cette technique fait qu'elle se retrouve intégrée à nombre de frameworks Ajax...

6) Proposer des alternatives
Tout le monde n'est pas en mesure d'utiliser Ajax : entre ceux qui ne disposent pas d'un navigateur compétent, ou d'autres dont les réglages de sécurité bloquent JavaScript, la partie des visiteurs ne pouvant ou ne voulant se servir de JavaScript (nécessaire pour Ajax) peut être dangereusement grande. Il faut alors leur offrir un moyen d'accéder au service sans se reposer sur cette technique.

C'est pourquoi il peut être plus simple de développer une application avec quelques parties "ajaxées", plutôt qu'une totalement en Ajax : revoir ces quelques sections devrait se faire plus rapidement que la réécriture complète du programme. On appelle cela une édulcoration élégante (graceful degradation), et il s'agit également d'un des mantras des développeurs XHTML+CSS.

7) Offrir un accès direct
Idéalement, il doit être possible d'envoyer à une connaissance un lien vers la donnée que l'on a trouvée via l'application (sauf pour celles très dynamiques ou personnalisées, comme les webmails). Or, Ajax ne modifie par l'URL lors du chargement et de l'affichage de nouvelles données. Il faudra donc proposer, à la manière de GMaps, un lien sur lequel récupérer une URL valide, qu'un correspondant pourra utiliser directement. Il s'agit ici encore d'un standard d'utilisabilité du Web, que nombre d'applications de type Ajax prennent le risque de "casser".

  Forum

Réagissez dans les forums de JDN Développeurs

8) Ne pas réinventer la roue
Nombre de développeurs se sont penchés sur Ajax, ses problèmes, et les meilleurs moyens de l'exploiter. En conséquence, les derniers mois ont vu surgir maints framworks, scripts et applications, visant chacun à faciliter l'implémentation d'Ajax. Si pour débuter il est préférable de taper directement les appels vers XMLHttpRequest, par la suite il peut se montrer sage de se reposer sur un outil complet de gestion d'appels Ajax. À charge pour le développeur, dès lors, de trouver parmi la foule de scripts, celui qui correspondra le mieux à ses besoins.
 
Xavier Borderie, JDN Développeurs
 
Accueil | Haut de page
 
 





Quand achetez-vous le plus en ligne ?
Du lundi au vendredi
Le samedi
Le dimanche

Tous les sondages