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] Pb de listes liées en mode Synchrone sous FireFox


Sujet :

JavaScript

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 577
    Par défaut [AJAX] Pb de listes liées en mode Synchrone sous FireFox
    Bonjour,

    je n'arrive pas à utiliser AJAX en mode synchrone sous firefox (sous IE : no problem)

    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
    function sendXHR(xhr, page, data)
    {	
    	xhr.onreadystatechange = function()
    	{
    		// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
    		if(xhr.readyState == 4)
    		{
    			if(xhr.status == 200)
    			{
    				eval(xhr.responseText);
    			}
    		}
    	}
     
    	xhr.open("POST", page, false);
    	xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');	
    	xhr.send(data);
     
    	return;
    };
    Y a-t-il un truc particulier ?

    @+

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 130
    Par défaut
    Est-ce que, par hasard, tu n'essaierais pas de récupérer le résultat avant d'envoyer la requête au serveur ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 577
    Par défaut
    Bonjour,

    ben si je remplace le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    eval(xhr.responseText);
    par :
    - en mode asynchrone --> j'ai bien mon "toto" qui s'affiche
    - en mode synchrone : jamais

    donc je me dis qu'en mode synchrone, je rentre jamais aprés le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(xhr.readyState == 4) ...
    Donc qu'il n'execute rien !!!

    @+

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 577
    Par défaut
    Bon bn j'ai fait ccomme ça :
    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
    function sendXHR(xhr, page, data, modeAsync)
    {	
    	if(modeAsync == true)
    	{
    		xhr.onreadystatechange = function()
    		{
    			// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
    			if(xhr.readyState == 4)
    			{
    				if(xhr.status == 200)
    				{
    					eval(xhr.responseText);
    				}
    			}			
    		}
    	}
     
    	xhr.open("POST", page, modeAsync);
    	xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');	
    	xhr.send(data);
     
    	if(modeAsync == false)
    	{
    		if(xhr.readyState == 4)
    		{
    			if(xhr.status == 200)
    			{
    				eval(xhr.responseText);
    			}
    		}
    	}
     
    	return;
    };
    et ça à l'air de marcher ...

  5. #5
    Membre Expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Par défaut
    Citation Envoyé par olive_le_malin
    Bon bn j'ai fait ccomme ça :
    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
    function sendXHR(xhr, page, data, modeAsync)
    {	
    	if(modeAsync == true)
    	{
    		xhr.onreadystatechange = function()
    		{
    			// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
    			if(xhr.readyState == 4)
    			{
    				if(xhr.status == 200)
    				{
    					eval(xhr.responseText);
    				}
    			}			
    		}
    	}
     
    	xhr.open("POST", page, modeAsync);
    	xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');	
    	xhr.send(data);
     
    	if(modeAsync == false)
    	{
    		if(xhr.readyState == 4)
    		{
    			if(xhr.status == 200)
    			{
    				eval(xhr.responseText);
    			}
    		}
    	}
     
    	return;
    };
    et ça à l'air de marcher ...
    Tu viens de mettre le doigt sur la "faute de copie" de FireFox

    Lorsque FireFox a copié l'objet XHR depuis Internet Explorer, il n'a pas pensé au mélange onreadystatechange -- mode synchrone... on voit ce que ca donne

    Comme tu as fait, c'est très bien, et ca marchera sur IE, et sur FF

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

Discussions similaires

  1. [ZF 1.11] Zend form & Ajax pour des listes liée
    Par katsuya dans le forum Zend_Form
    Réponses: 0
    Dernier message: 05/11/2012, 10h59
  2. ajax dynamic list event is not defined sous firefox
    Par djanke dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/02/2008, 16h31
  3. Liste et tableau en ligne sous firefox
    Par mkc44 dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 19/03/2007, 11h15
  4. [AJAX] : pb en communication Synchrone sous Firefox !
    Par Foub dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 01/08/2006, 17h32

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