Par julien lavault le mercredi, août 8 2007, 17:45 - Ajax - Lien permanent
A force de m'intéresser de très prêt à Ajax, je constate qu'il y énormément d'amalgame de fait à ce sujet! En effet, beaucoup pense que faire une requête en httpRequest au onclickd'un bouton constitue de l'Ajax. Hors la véritable utilisation de Ajax est véritablement ailleurs, la subtilité réside de faire un interface Web dont toute l'interactivité Javascript (dont les transferts asynchrone de donnée) sont Indépendante de l'application principale, c'est à dire que si le site le client ne possède pas Javascript, le site marche quand même normalement. Cela va plus loin, car cette méthode permet également de référencé les contenus des pages même si elles sont chargés de manière asynchrone!
Il faut que le document XHTML ne possède aucun script Javascript dans le body, mais juste l'appelle au librairie utilisées dans le header.
La technique est simple pour faire ceci, il faut utilisé les gestionnaires d'évènements ainsi que les sélecteurs d'éléments. Ainsi un site traditionnel pourra ce voir gréfer un ensemble évènementiel qui permettra de rendre un interface Web interactive. Le seul supplément sera de crée un fichier 'dataTransfert.php' qui transféra les templates de contenu. Autrement tout le reste sera simplement des librairie Javascript qui déclencheront des actions suivant un système évènementiel.
Voici un exemple de ce qu'il ne faut pas faire (gestionnaire d'évènement directement dans le document XHTML):
<p id="monBouton" onclick="maFoncitonJs();">Cliquez moi</p>
Voici le même exemple, mais correcte cette fois ci (fichier javascript inclus dans le header):
$'(monBouton').addEvent('click', function(){
// Contenu de ma fonction
});
Ce principe est la base, à partir de découle tout le reste, le Blog JFLAD vous présentera ultérieurement d'autres techniques pour faire des transferts asynchrone de données depuis une page traditionnelle en gardant une lisibilité dans les moteurs de recherche!
Je vous conseil fortement l'utilisation du framework Mootools dont j'ai déjà fait l'éloge dans de précédent billet, ce framework est vraiment sur-puissant, et possède toutes les fonctionnalités imaginable pour faire de l'Ajax et rendre une application Web riche version Web 2.0.
Commentaires
Je dirais même plutôt que lorsqu'on veut faire de l'ajax, il vient en surcouche à une application (quand on en a le temps et qu'on veut faire propre).
Ce qui donne :
1. réalisation du site version sans ajax, c'est à dire entièrement crawlable et accessible.
2. ajout de l'ajax / js en surcouche
Tout à fait d'accord avec toi, les 2 structures doivent être indépendante !