IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

[AJAX] Séquence avec AJAX


Sujet :

JavaScript

  1. #1
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 95
    Points : 54
    Points
    54
    Par défaut [AJAX] Séquence avec AJAX
    Bonjour,

    Je cherche a faire un appel AJAX au sein d'une fonction javascript afin de mettre a jour une variable globale en fonction du contenu XML de la reponse ajax.
    Mon process Ajax marche parfaitement et j'obtiens bien ce que je veux mais la séquence des opération n'est pas respectée:

    Le code de ma fonction JS appelé sur un "onchange":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    	function getSubAttributes(trId, ischecked){
     
    		attName = trId.substring(2);
    		alert("1. isempty="+isempty);
    		getAjaxBoolSub(attName);
    		alert("3. isempty="+isempty);	
                }
    Le code de mon AJAX:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    	//AJAX
    	function getAjaxBoolSub(attName){
    		if(window.XMLHttpRequest){
    			try{
    				reqAjax = new XMLHttpRequest();
    			}catch(e){
    				reqAjax = false;
    			}
    		}
    		if(reqAjax){
    			reqAjax.onreadystatechange = checkAjax;
    			reqAjax.open("GET", "/afi_tuto/jasper/getAjaxBoolSub.do?attribute="+attName, "true");
    			reqAjax.send("");
    		}
    	}
    	function checkAjax(){
    		if(reqAjax.readyState==4){
    			if(reqAjax.status==200){
    				var rootCol = reqAjax.responseXML.getElementsByTagName("ROOT");
    				var root= rootCol[0];
    				var tagIsEmpty = root.firstChild;
    				var isempty = tagIsEmpty.firstChild.nodeValue;
    				alert("2. isempty=" + isempty);
    			}
    			else{
    				alert("There was a problem retrieving page\n" + reqAjax.statusText);
    			}
    		}
    	}
    Pour faire simple, mon alert("2. isempty=" + isempty) s'affiche après le alert("3. isempty=" + isempty).

    Si qq'un a une explication du probleme...

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 284
    Points : 349
    Points
    349
    Par défaut
    Ton probleme vient du A de Ajax : asynchronous

    La requete est envoyée au serveur via XMLHTTPRequest de manière asynchrone, ne bloquant pas l'execution du code.
    Tu assignes un callback via l'evenement onreadystatechange du XMLHTTPRequest pour traiter le resultat de la requete lorsque celui-ci sera disponible, c'est pour ca qu'on teste dans l'evenement la valeur du readyState et du status.

    Pour faire simple, il faut donc appeller ton alert('3') dans la methode checkAjax().
    Nicolas

  3. #3
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 95
    Points : 54
    Points
    54
    Par défaut
    moi qui croyais qu'ils avaient mis asynchronous juste parce que JAX c'était moche...
    En tout cas merci, ca marche mieux maintenant...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 14/01/2010, 16h27
  2. [AJAX] Sécurité avec AJAX
    Par Oluha dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 05/07/2006, 18h01
  3. [AJAX] Résultat avec Ajax
    Par incao dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 13/05/2006, 22h14
  4. [AJAX] PHP avec ajax(makerequest)
    Par Benjiijneb dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 11/04/2006, 16h53
  5. [AJAX] Modifier avec AJAX une image générée avec GD
    Par thsantac dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 27/03/2006, 19h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo