WIF a écrit :
Ben si
Ce que je voulais dire, c'est que l'analogie n'est pas satisfaisante. Tu dis toi-même que «tout choix fait suite à une réflexion», et tu précises ensuite les critères de cette réflexion. Tu admettras que, rhétoriquement et logiquement, c'est très loin de «C'est un choix tout simplement comme certains préfèreraient mettre du noir plutôt que de bleu».
WIF a écrit :
Depuis le temps que je fais de l'informatique, j'ai entendu de nombreuses personnes le dire par exemple des personnes de chez Microsoft aux TechDays et DevDays ou encore de l'équipe Wygwam...
Il y a pas mal de choses dites dans ces contextes sur la réactivité des applications desktop. Pour le Web, la situation est sensiblement différente. Pour une application desktop, l'utilisateur attend soit une réaction immédiate, soit l'affichage immédiat d'un signal comme quoi son instruction est prise en compte (un message et une barre de progression, par exemple).
Sur le Web, il y a peu encore le modèle était: je lance une instruction, ça charge une nouvelle page/la page se recharge. Ce comportement est encore largement attendu par l'utilisateur. Le domaine dans lequel on peut facilement s'en abstraire, c'est dans le cas des applications web qui imitent fortement des équivalents desktop. Gmail, une des premières applications web qui a marqué la transition vers l'applicatif web, a impressionné par le fait qu'on pouvait faire certaines actions instantanément (ce n'était pas le cas, mais l'action était affichée comme faite directement, dès le moment où la requête Ajax partait). Dans le cas de Gmail, ça a séduit. Dans le cas d'un site «classique» orienté contenus, il reste à voir si ça va séduire, ou bien perturber, ou un peu des deux.
Les publications intéressantes sur ce sujet sont celles sur l'ergonomie web et celles sur les performances client (cf. performance.survol.fr par exemple).
WIF a écrit :
Il s'agit bien d'esthétique car cela évite le "scintillement" de la page et donc amène un confort visuel.
Trois choses ici:
1. Le confort «visuel» et l'esthétique, ce sont deux choses différentes. Désolé d'être tatillon, c'est mon éducation littéraire qui ressort.
2. Le scintillement en question est loin d'être un phénomène universel. Dans de nombreux navigateurs modernes, il n'a pas lieu entre deux pages d'un même site: le navigateur attend d'avoir un rendu visuel de la nouvelle page avant de remplacer le visuel de l'autre page (visuel qui peut être inactif -- je pense aux liens et actions JavaScript) sur la fin du temps de chargement. On voit là un mécanisme assez intelligent d'optimisation des performances perçues par l'utilisateur. Je crois bien que tous les navigateurs récents font ça, IE8 compris. À voir pour IE7.
3. Dans le cas où un navigateur fait apparaitre brièvement une page blanche, ce comportement n'est pas inhabituel pour le navigateur (il ne gène réellement que le développeur sous Firefox/Opera/Safari/IE8 qui teste ponctuellement sous IE6 et se dit «mon dieu, c'est affreux ce scintillement»). Il est je pense important de dédramatiser ce «souci», du moins pour un cas d'usage qui représente le passage d'un écran A à un écran B (et pas une altération subtile de l'écran A).
Un récapitulatif rapide sur les défauts techniques d'une navigation Ajax (comparée à une navigation HTML classique):
- Le fait de ne pas changer l'adresse dans l'URL signifie que l'on ne peut pas placer de marque-page pour une page donnée. Ce problème se règle partiellement avec un système d'ancres dans l'URL.
- Si pas conçu -- et testé -- sur un modèle d'optimisation Ajax en surcouche, le site sera inutilisable sans JavaScript et donc pour une partie des utilisateurs, et par ailleurs pas visible des moteurs de recherche.
- À moins d'utiliser ARIA, les modifications de zones de la page par JavaScript ne sont pas notifiées à un utilisateur de lecteur d'écran. Si le site ou application doit être accessible, il faut utiliser ARIA.
Les raisons que tu exposes sont intéressantes et l'objectif de formation est louable. Quitte à se former, je conseillerais donc de se former aux bonnes pratiques et d'implémenter la navigation Ajax comme une surcouche d'une navigation traditionnelle. Et pourquoi pas d'implémenter un système d'URL virtuelles (http://example.org/#rubrique1,
http://example.org/#rubrique5-page2), pour une solution plus complète. Mais ça peut faire beaucoup d'un seul coup.