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] [Firefox] send n'est pas appel�e tout le temps


Sujet :

JavaScript

  1. #1
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    17
    D�tails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 17
    Par d�faut [AJAX] [Firefox] send n'est pas appel�e tout le temps
    Bonjour,

    Je suis d�butante en Ajax.

    J'ai cr�� une classe Pack avec sa m�thode CalculPrix. Elle doit envoyer une requ�te vers un script php qui me renvoie le prix.
    Une fonction PrixPack permet d'appeler cette m�thode pour tous les packs initialement cr��s.

    Sous IE, tout ce passe normallement : il m'alerte les bons prix.

    Sous Firefox, il ne veut envoyer la requ�te que pour le dernier objet Pack, et donc ne m'alerte que le dernier prix.
    Quand je fais une alert apr�s send (pour connaire readyState), l�, firefox alerte tous les prix demand�s...





    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
     
    /**
    BUT : calcule le prix d'un pack et le stocke dans sa propriété prixSpp et prixPublic
    */
    Pack.prototype.CalculPrix = function (station,nbjours,chaussures)
    {
    	objXMLHR = createXMLHttpRequest();
     
    	  objXMLHR.open('get','scripts/prix/prix.php?station='+station+'&nbjours='+nbjours+'&pack='+this.code+'&chaussures='+chaussures, true);
     
    	var pack = this;
     
    	objXMLHR.onreadystatechange = function()
    	{
     
    		if(objXMLHR.readyState ==4)
    		{
    			alert(objXMLHR.responseText);
    		}
    	}
     
    	objXMLHR.send(null);
    	//alert(objXMLHR.readyState);
     
     
    }
     
     
    /**
    BUT : calcule les prix de tous les packs
    */
    function PrixPacks(station,nbjours,chaussures)
    {
    	PackExpert.CalculPrix(station,nbjours,chaussures);
    	PackPremium.CalculPrix(station,nbjours,chaussures);
    	PackClassic.CalculPrix(station,nbjours,chaussures);
    	PackSA.CalculPrix(station,nbjours,chaussures);
    	PackJunior.CalculPrix(station,nbjours,chaussures);
    	PackSJunior.CalculPrix(station,nbjours,chaussures);
    	PackKid.CalculPrix(station,nbjours,chaussures);
    }
    Merci d'avance

    Bonne journ�e

  2. #2
    Membre habitu�
    Profil pro
    Inscrit en
    Ao�t 2002
    Messages
    9
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2002
    Messages : 9
    Par d�faut
    Essaye en synchrone.
    Je ne sais pas comment tu cr�e ton objet XMLHttpRequest (m�thode createXMLHttpRequest), mais si �a trouve, firefox ne veut pas faire deux requ�tes en m�me temps (avec des objets diff�rents).
    En tout cas, la spec de lXMLHttpRequest stipule qu'un open dessus annule les autres requ�tes (lorsqu'on utilise le m�me objets pour toutes les requ�tes).

  3. #3
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    17
    D�tails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 17
    Par d�faut comment demander d'attendre ?
    Merci de ta r�ponse.

    J'ai r�ussis � faire �a en mode synchrone, effectivement, �a marche bien.

    L'inconv�nient, c'est qu'en attendant la r�ponse, le navigateur est bloqu� (normal) mais du coup, pour l'utilisateur, c'est pas tr�s fluide.
    Quelqu'un connait un autre moyen ?

    Je mets quand m�me mon code en mode synchrone pour ceux qui aurait le m�me probl�me :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Pack.prototype.CalculPrix = function (station,nbjours,chaussures)
    {
    	objXMLHR = createXMLHttpRequest();
     
    	objXMLHR.open('get','scripts/prix/prix.php?station='+station+'&nbjours='+nbjours+'&pack='+this.code+'&chaussures='+chaussures, false);
     
    	objXMLHR.send(null);
     
           pack.prix = objXMLHR.responseText;
     
    }


    merci quand m�me

    Bonne journ�e

Discussions similaires

  1. R�ponses: 2
    Dernier message: 21/02/2014, 16h47
  2. [d�butant] la methode Validate() n'est pas appell�e
    Par maxattack dans le forum Struts 1
    R�ponses: 26
    Dernier message: 16/05/2007, 17h06
  3. [AJAX] AJAX+Firefox : readyState ne d�passe pas le 1
    Par TheRedLed dans le forum G�n�ral JavaScript
    R�ponses: 1
    Dernier message: 13/04/2007, 13h42
  4. ADO n'est pas du tout portable Comment le rendre portable
    Par bruce-willis dans le forum C++Builder
    R�ponses: 4
    Dernier message: 24/03/2007, 10h52
  5. [servlet][filtre] filtre qui n'est pas appel�
    Par felix79 dans le forum Servlets/JSP
    R�ponses: 4
    Dernier message: 29/06/2005, 20h09

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