Ajax peut sembler complexe pour les non-initiés pourtant, ce n’est pas la mort, c’est qu’une fonction javascript parmis tant d’autres.

Qu’est ce qu’ajax?

C’est le plus important à comprendre, on confond souvent Ajax avec le DHTML, or, Ajax n’est tout simplement qu’un nom donné à l’objet XMLHttpRequest permettant de communiquer avec le serveur de façon asyncrone , tout les effets visuels que l’on trouve sur les sites « ajax » sont du DHTML. Actuellement, les frameworks (librairies de développement) combinent souvent les 2, mais font beaucoup plus, croyez-moi, une librairie comme prototype est vraiment génial à utiliser, ça vaut vraiment le coup de toucher au javascript.

l’origine d’ajax?

le principe d’Ajax est né en 2001 avec l’objet ActiveX XMLHttp de Internet Explorer, et oui c’est microsoft qui a pondu ça, néamoins, les autres navigateurs n’étant pas compatible activeX, cet objet est resté au plaquard

Ensuite Mozilla créa XMLHttpRequest et fut suivis par les autres navigateurs (sauf IE évidement).

Le terme AJAX a été introduit par Jesse James Garrett, le 18 février 2005 seulement

comment fonctionne ajax?

AJAX, ou Asynchronous JavaScript And XML (« XML et Javascript asynchrones »), comme le signale son nom, communique avec le serveur grace à javascript et récupère les données en XML.

en fait c’est pas tout à fait vrai car actuellement, car ajax peut aussi récupérer du HTML (on appel ça Ahah) du json, du txt, etc…

une fois les données récupérées, on peut en faire ce qu’on veut. Une utilisation courrante est d’afficher une page html dans une autre sans Iframe. Cette utilisation peut être certe utile, mais c’est largement sous estimer Ajax.

par exemple, en communiquant avec votre base de donnée avec ajax en XML, vous pouvez envoyer et récupérer des tableaux que vous pourrez manipuler avec javascript, et là vous commencerez à avoir une utilisation puissante de ajax.

limitations d’Ajax

1) l’objet XMLHttpRequest a des limites, la principale étant de ne pouvoir communiquer qu’avec le serveur courant, inutile donc de chercher à lire une page de google avec XMLHttpRequest, néamoins, rien ne vous empêche de communiquer avec une page PHP qui elle lira la page distante via CURL ou Fopen, par exemple

2) On ne peut pas récupérer et lire du javascript se trouvant dans une page appelée par XMLHttpRequest. en fait c’est pas tout à fait juste, des astuces (déconseillées) vous permettent de lire le javascript en le plaçant dans des « onload » par exemple ;

3) XMLHttpRequest est très gourmand en ressources SQL puisque vous pouvez lancer plusieurs requètes SQL simultanément.

4) bien que l’objet XMLHttpRequest soit du javascript, il nécésite la réponse d’un serveur.

5) les données récupérées avec XMLHttpRequest reste en mémoire, donc XMLHttpRequest est un gros consommateur de Ram car une même page pourra plusieurs fois être chargée en mémoire.

l’objet XMLHttpRequest

il existe diffèrentes versions de la fonction ajax, celle-ci sont en général très optimisées pour simplifier l’utilisation de l’objet XMLHttpRequest et évité de figer le navigateur.

l’objet XMLHttpRequest est très simple à utiliser.

function ajax(file)
{
if(window.XMLHttpRequest) // l’objet de FIREFOX
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // l’objet activex de IE
xhr_object = new ActiveXObject(« Microsoft.XMLHTTP »);
else
return(false); // ben là le navigateur n’est pas compatible
xhr_object.open(« GET », file, false); // j’ouvre le fichier « file » en méthode get
xhr_object.send(null);
if(xhr_object.readyState == 4) return(xhr_object.responseText); // et là je retourne le résultat .
else return(false);
}

par exemple avec cette fonction, vous pouvez écrire afficher une page complete dans une alert JS comme ceci

alert(‘ajax(« mapage.php »)’);

vous pouvez essayer, ça marche. Néamoins, je vous déconseille largement ce script pour une raison simple, cette fonction est imcomplète et pourrait figer votre navigateur en cas de réponse trop lente de la part du serveur.

mais si vous désirez juste afficher une .txt via XMLHttpRequest, pourquoi pas.

l’objet XMLHttpRequest est il compliqué avec une librairie js?

Franchement, oui, car ces librairies sont développées pour utiliser toutes les possibilités de l’objet XMLHttpRequest, du coup, vous vous retrouvez avec une panoplie de fonctions à utiliser. Mais heureusement, celles-ci sont souvent bien documentées.

Pourquoi préfère-t-on Ruby On Rails plutôt que PHP pour exploiter l’objet XMLHttpRequest?

Ruby est un language puissant mais pas spécialement orienté web (comme le c et le python) par contre Ruby On Rails est un frameworks Ruby qui va générer du language serveur (ici Ruby), du html et du javascript. Au final, vous n’avez plus qu’un language à utiliser et en plus le code est nettement plus propre.

Il existe néamoins quelques frameworks PHP qui ressemble pas mal à Ruby on Rails.

la prochaine fois, j’essayerai de vous parler du Dhtml



la diffusion d’annonces sur ce site relève de ma responsabilité et ne représente pas les positions d'une entreprise pour laquelle je travaille

Rédigé par

Christophe Lefevre, spécialiste du SEO et des réseaux sociaux pour les nouveaux médias.

Sur Techtrends, je partage le fruit de ma veille numérique et mes réflexions autour des tendances du web, des médias et nouvelles technologies.

Egalement sur Developpement (14 sur 23 articles)