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
|
var connexion = null;
function premiereEtape() {
if (connexion != null && connexion.readyState != 0) {
// Une requête est en train d'être effectuée => on l'aborte car une nouvelle
// va être executée
connexion.abort();
}
connexion = getConnexion();
if (connexion != null) {
// Lancement de la première étape
connexion.open("GET", "premiereEtape.php", true);
// Affecte un evenement à connexion : lorsque la requête a finie d'être
// executée, on lance la deuxième étape
connexion.onreadystatechange = function () {
if (connexion.readyState == 4 && connexion.responseXML) {
// Ceci est executé que lorsque le fichier premiereEtape.php
// a terminé son traitement
// Affichage du message de fin de la première étape :
document.getElementById("avancement").innerHTML += "<br>Etape 1 terminée";
// Lancement de la deuxième étape :
var res = connexion.responseXML.getElementsByTagName("resultat")[0];
deuxiemeEtape(res.getAttribute("a"), res.getAttribute("b"));
}
};
}
// Envoi de la requête :
connexion.send(null);
// Affichage du message disant que la première étape est en cours :
document.getElementById("avancement").innerHTML += "Etape 1 en cours";
}
function deuxiemeEtape(a, b) {
// A peu pres le même code que premiereEtape
// Sauf :
connexion.open("GET", "deuxiemeEtape.php?a=" + a + "&b=" + b, true);
}
// Fonction qui retourne un objet permettant de dialoguer directement avec le serveur
function getConnexion() {
var c = null;
if (window.XMLHttpRequest) {
// Pour Firefox et autres :
c = new XMLHttpRequest();
}
else if (window.ActiveXObject) {
// Pour IE :
try {
// Première solution :
c = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
try {
// Seconde solution :
c = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {
c = null;
}
}
}
if (c == null) {
// AJAX non supporté par le navigateur
alert("Votre navigateur ne supporte pas certaines fonctionnalités de cette page.\nVous rencontrerez donc peut être des problèmes.");
}
return c;
} |
Partager