1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
| var xmlHttp;
//
// fonction d'obtention de l'objet XMLHttpRequest
//
function getXmlHttpRequestObject()
{
// déclaration de la référence à l'objet XMLHttpRequest
var xmlHttpObject;
if (window.XMLHttpRequest)
// le navigateur est Internet Explorer 7 ou plus récent, Mozilla, Safari, etc.
{
// on essaie d'obtenir un objet XMLHttpRequest
try {
xmlHttpObject = new XMLHttpRequest();
}
// echec
catch(e) {
xmlHttpObject = false;
}
}
else
// le navigateur est Internet Explorer 6 ou plus ancien
{
// on essaie d'obtenir un objet ActiveXObject, équivalent de l'objet XMLHttpRequest
try {
xmlHttpObject = new ActiveXObject("Microsoft.XMLHTTP");
}
// echec
catch(e) {
xmlHttpObject = false;
}
}
// retour de l'objet créé ou affichage d'un message
return xmlHttpObject;
}
//
// fonction de lancement d'une requête HTTP asynchrone Ajax
//
function requeteAjax()
{
// tentative d'obtention de l'objet XMLHttpRequest
xmlHttp = getXmlHttpRequestObject();
if (xmlHttp)
{
// test si l'objet xmlHttp est non initialisé ou disponible (prêt)
if (xmlHttp.readyState == 0 || xmlHttp.readyState == 4)
{
// assignation de la fonction de traitement de la réponse du serveur lorsque le serveur est prêt à envoyer les données mises à jour
xmlHttp.onreadystatechange = traitementReponseServeur;
// identification du mode de passage, de l'URL du serveur, le dernier paramètre et du type de transmission : true pour asynchrone
var url = "http://localhost/cgi-bin/obs/obshttp_ajax.pl";
xmlHttp.open("GET", url, true);
// envoi de la requête au serveur, paramètre à null si méthode GET ou méthode POST sans variables à transmettre
if(typeof console == 'object') console.log("avant xmlHttp.send");
xmlHttp.send(null);
if(typeof console == 'object') console.log("après xmlHttp.send");
}
else
// rafraîchissement au bout de 100 millisecondes soit un centième de seconde
setTimeout("requeteAjax()", 1000);
}
}
//
// fonction de traitement de la réponse du serveur
//
function traitementReponseServeur()
{
if (xmlHttp.readyState == 3) {
if (xmlHttp.status == 200) {
document.getElementById( 'divMess' ).innerHTML =xmlHttp.responseText;
}
}
// test si la transaction est terminée
if (xmlHttp.readyState == 4)
{
if(typeof console == 'object') console.log("début traitementReponseServeur : xmlHttp.status = ",xmlHttp.status);
// test si la transaction a réussi
if (xmlHttp.status == 200)
{
if(typeof console == 'object') console.log("xmlHttp.readyState == 4 && xmlHttp.status == 200");
// relance de la requête
setTimeout("requeteAjax()", 100);
}
else
alert("Problème d'exécution : xmlHttp.status = ",xmlHttp.status);
}
} |
Partager