Qu'est-ce-que c'est XMLHttpRequest ?
XMLHttpRequest est un objet qui permet de récupérer toutes sorte d'info sans recharger la page !!!
Récupérer des information sans recharger la page ?
Oui vous avez bien lu grâce a cet objet vous pouvez récupérer toutes les données que vous voulez mais avant que vous arriviez a le faire il faut savoir comment le faire !!!
Synchrone ou asynchrone ?
Commençons par le mode asynchrone : le mode asynchrone permet de faire quelque chose pendant que le script ajax s'éxécute et communique avec le serveur contrairement au mode synchrone qui bloc la page pendant l'éxécution du script !!!
Pour envoyer une requête en mode asynchrone il faut mettre true au troisième paramètre de la fonction open !!!
Pour envoyer une requête en mode synchrone il faut mettre false au troisième paramètre de la fonction open !!!
Mise en pratique :
| var xhr_object = null; //création de l'objet
|
|
|
| if ( window . XMLHttpRequest ) // Firefox
|
| xhr_object = new XMLHttpRequest();
|
| else if ( window . ActiveXObject ) // Internet Explorer
|
| xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
|
| else { // XMLHttpRequest non supporté par le navigateur
|
| alert ( "Votre navigateur ne supporte pas les objets XMLHTTPRequest..." );
|
| return;
|
| }
|
|
|
| xhr_object.open("GET", "fichier.extension", true); /*le premier paramètre est la méthode, le deuxième est le nom du dossier dont on va retourner le résultat et le troisième sert a dire que c'est en mode asynchrone*/
|
|
|
| xhr_object.onreadystatechange = function() {
|
| if (xhr_object. readyState == 4) alert (xhr_object. responseText );
|
| }
|
|
|
| xhr_object.send(null); //on envoi la requête
|
Valeur de readystate :
Valeur
| Description
|
0 (uninitialized)
| non initialisé
|
1 (loading)
| début du transfert des données
|
2 (loaded)
| données transférées
|
3 (interactive)
| les données reçues sont accssibles en partie
|
4 (complete)
| les données sont complètement accessibles
|
Si vous avez des conseil a me donner pour enrichir ce tutorial je vous serais reconnaissant de me les faire parvenir !!!