L'Informatique
HTML |  Javascript |  DOM |  PHP |  PHP-MySql |  Sessions en PHP |  JSP |  TomCat |  ASP |  AJAX
Java |  C |  C# | 
SQL |  Oracle |  PL/SQL |  les index |  Données multimédia : les LOBs |  Intermedia Text |  projet ORDVideo & Java
BMP |  PBM |  PGM |  PPM | 
UML |  Diagramme Use Case |  Diagramme de classes | 
Liens informatique |  Autres Liens | 

Recherche personnalisée

AJAX

 : 

la technologie




AJAX signifie Asynchronous JavaScript + XML.

Ajax utilise en fait le Javascript pour émettre une requête Http en direction du serveur, et ce dernier renvoie un résultat que l'on pourra afficher dans une zone de la page déjà chargée.







Commençons par la page HTML dans laquelle on voudra recharger dynamiquement une partie :

var xhr_object = null;
var pageAjax = 'http://monsiteamoi.fr/page1ajax.php';
// page qui sera appelée sur le serveur et qui renverra le résultat

function envoiRequete()
{
  if ( window.XMLHttpRequest )
  {
    // Objet XmlHttpRequest pour les moteurs GECKO comme Firefox
    xhr_object = new XMLHttpRequest();
  }
  else if ( window.ActiveXObject )
  {
     // Objet XmlHttpRequest pour Internet Explorer
    xhr_object = new ActiveXObject('Microsoft.XMLHTTP');
  }
  else
  {
    // navigateur incompatible
    return;
  }
  // On "ouvre" la requête vers la page désirée
  xhr_object.open('GET', pageAjax, false);
  // On lui donne le pointeur de fonction à exécuter quand
  le serveur renverra le résultat
	xhr_object.onreadystatechange = CallBackRequest;
  // On envoie la requête
  xhr_object.send(null);
}

function CallBackRequest() {
  // Le résultat est renvoyé
   if ( xhr_object.readyState == 4 )
   {
     // On injecte le résultat dans un div conçu dans ce but
     document.getElementById('divResultat').innerHTML = xhr_object.responseText;
   }
}


Dans cette même page, on trouve par exemple un bouton qui va appeler la fonction précédente, ainsi qu'un div qui recevra le résultat :

<input type="button" value="XMLHttpRequest" onclick="envoiRequete();" />

<div id="divResultat">
</div>




Ensuite, il faut créer le fichier sur le serveur qui calculera le résultat qui sera affiché dans le div.
Par exemple, plusieurs appels au serveur pourront être effectués à partir d'une page dans lequel un menu ne sera jamais rechargé, d'où des gains de temps de chargement.
Exemple de page Serveur en PHP (n'importe quel langage peut être choisi). Il faut juste penser que le code renvoyé sera intégré à un code html déjà existant, on ne remet pas entre autres les balises html, head et body.

<?
//affichage de l'heure
  echo "Bonjour, il est actuellement ".date("h:i:s");
?>


On peut faire ce que l'on veut dans cette page de traitement, comme des calculs, des requêtes sur une base de données, ...



Romain C