|
|
|
|
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. |
|
|
|
|
|
Quand achetez-vous le plus en ligne ? |
|
|
|
|
|
|
|
|