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] deux requetes ajax dans une même page


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 103
    Points : 56
    Points
    56
    Par défaut [AJAX] deux requetes ajax dans une même page
    bonjour à tous !!

    j'ai un petit souci sur une page qui inclue le code javascript suivant :
    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
    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
    <script language="JavaScript" type="text/javascript">
     
    function getXhr() {
    	var xhr = null;
     
    	//firefox
        if (window.XMLHttpRequest) { 
    		xhr = new XMLHttpRequest();
        }
     
    	//ie
        else if (window.ActiveXObject) {
    		try {
    			xhr = new ActiveXObject("Msxml2.XMLHTTP");
    		}
    		catch (e) { 
    			xhr = new ActiveXObject("Microsoft.XMLHTTP");
    		}
    	}
     
    	//non supporté
    	else {  
    		alert("Fonction non supportée par le navigateur"); 
    		xhr = false; 
    	}
     
    	return (xhr);
    }
     
    function maj(int note) {
     
    	var wesh = getXhr();
     
    	wesh.onreadystatechange = function() { 
     
    								if (wesh.readyState == 4 && wesh.status == 200) {
    									var resultat = wesh.responseText;
    									document.getElementById('note').innerHTML=resultat;
    								}
     
    							 };
     
    	wesh.open("GET","http://generationsfm.com/seb/note.php?note="+note,true);
    	wesh.send(null);
     
    }	
     
    function getTrack()
    {
        var xhr = getXhr();
     
        xhr.onreadystatechange = function() { 
     
    								if (xhr.readyState == 4 && xhr.status == 200) {
    									var resultat = xhr.responseText;
    									document.getElementById('div_track').innerHTML=resultat;
    								}
     
    							 };
     
    	xhr.open("GET","http://generationsfm.com/seb/track.php",true);
    	xhr.send(null);
    	setTimeout("getTrack()", 5000);
    }
     
    getTrack();
     
    </script>
    l'appel de deux xhr semble poser un problème... getTrack() fonctionne très bien sans la fonction maj(note), mais dès que je l'ajoute même getTrack() ne fonctionne plus
    cela vient-il du fait qu'on ne peut pas utiliser deux xhr sur une même page ? je n'ai pas trouvé de réponses dans les tutos...

    please help !!

    merci ^^

  2. #2
    Membre habitué

    Profil pro
    Inscrit en
    Février 2005
    Messages
    317
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 317
    Points : 183
    Points
    183
    Par défaut
    Essaie en d'éxécuter tes requête en mode synchrone, moi j'ai testé en envoyant deux requêtes en asynchrone, et je recevait 2 fois le résultat de la première.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wesh.open("GET","http://generationsfm.com/seb/note.php?note="+note,false);

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 103
    Points : 56
    Points
    56
    Par défaut
    erf l'exécution en mode synchrone ne change rien, en fait la fonction maj(note) fonctionne mais pas getTrack()

    je dois avoir mal compris quelque chose car pour moi l'intérêt d'ajax était justement de pouvoir effectuer plusieurs requêtes à la fois...

    une autre idée peut être ?

    merci ^^

  4. #4
    Membre habitué

    Profil pro
    Inscrit en
    Février 2005
    Messages
    317
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 317
    Points : 183
    Points
    183
    Par défaut
    je te donne mes fonctions ajax, moi je peux exécuter deux requêtes sans soucis:

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    function getXMLHTTP(){
     var xhr=null;//firefox
     if (window.XMLHttpRequest) {
     xhr = new XMLHttpRequest();
     
    // Handling Safari/firefox bug :
     if (xhr.overrideMimeType) {
      xhr.overrideMimeType("text/html");
     }
     
     } else {
     
     if (window.ActiveXObject) {
     
     try { // IE IE
     xhr = new ActiveXObject("Msxml2.XMLHTTP");
     } catch (e) {
     try { // Others IE
     xhr = new ActiveXObject("Microsoft.XMLHTTP");
     } catch (e) {
     window.alert("Your navigator doesn't handle AJAX, please use Internet explorer, Safari or firefox");
     } // try-catch
     } // try-catch
     
     }
     
     } // if-else
     
     return xhr;
    }
     
     
     
    function ajaxquery(page,params,divid,sync)
    {
     // alert(params);
     if(sync==null) { sync = true;}
     var ajaxrqt=getXMLHTTP();
     ajaxrqt.onreadystatechange = function() {
     if(ajaxrqt.readyState == 4) {
      document.getElementById(divid).innerHTML=ajaxrqt.responseText;
     }
     }
     ajaxrqt.open("POST", page, sync);
     ajaxrqt.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
     ajaxrqt.send(params);
     
    }

Discussions similaires

  1. [DisplayTag] Deux display table dans une même page
    Par thouraya dans le forum Taglibs
    Réponses: 0
    Dernier message: 19/05/2014, 17h05
  2. Deux requêtes dans une même page
    Par Trezegoals dans le forum Doctrine2
    Réponses: 0
    Dernier message: 15/04/2013, 09h18
  3. [1.x] Deux formulaires distinct dans une même page ?
    Par w1Re1337 dans le forum Symfony
    Réponses: 2
    Dernier message: 06/01/2012, 10h27
  4. [MooTools] Utilisation de deux bibliothèque mootools et prototype dans une même page
    Par karimphp dans le forum Bibliothèques & Frameworks
    Réponses: 7
    Dernier message: 15/03/2008, 23h26
  5. Deux formulaires différents dans une même page
    Par zabdaniel dans le forum Langage
    Réponses: 3
    Dernier message: 14/01/2008, 20h31

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