Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
5181 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Ajax et Firefox

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Ajax et Firefox

n°1579805
Decapfour
Posté le 27-06-2007 à 11:17:14  profilanswer
 

J'ai un objet AJAX  
Si vous connaissez :

Code :
  1. function getXhr(){
  2.  var xhr = null;
  3.  try {
  4.      xhr = new XMLHttpRequest();
  5.  }
  6.  catch(e)
  7.  {
  8.       xhr = new ActiveXObject("Microsoft.XMLHTTP" );
  9.  }
  10.  return xhr;
  11. }


 
Et donc jusqu'a maintenant j'utilisais Firebug, un debugeur javascript pour firefox, et ie classique.
Les appels ajax fonctionnaient très bien jusqu'a maintenant, que ce soit sous ie et firefox.
Mais j'ai voulu recement desactivé firebug pour des tests, et la, les appels AJAX ne marchent plus sous firefox sans firebug !
Tout marche toujours bien sous ie, niquel
Firefox passe bien dans le javascript( testé avec des alerts ), il passe meme sur l'instruction de l'ajax, les alerts étant après, mais apparement ils ne doivent rien renvoyer.
Mais c'est halucinant parce qu'au debut, je n'utilisais pas firebug, et l'objet ajax, je ne l'ai pas du tout modifié !
Mystère :/
Des idées?

mood
Publicité
Posté le 27-06-2007 à 11:17:14  profilanswer
 

n°1579809
Decapfour
Posté le 27-06-2007 à 11:21:19  profilanswer
 

Apparement le fait de poster ma inspiré ^^ :

Code :
  1. function call (url, response, concatener){
  2.  var xhr = getXhr();
  3.  xhr.onreadystatechange  = function()
  4.      {
  5.          switch (xhr.readyState){
  6.     case 4 :
  7.               if (xhr.status  == 200)
  8.       {
  9.        if(concatener == 1){
  10.                    response.innerHTML += xhr.responseText;
  11.                    }else{
  12.                     response.innerHTML = xhr.responseText;
  13.                    }
  14.       }
  15.     else response.innerHTML += "<li>"+xhr.status;
  16.    break;
  17.          }
  18.      };
  19.     xhr.open( "GET", url,  true); ICI LE FALSE
  20.     xhr.send(null);
  21. }


Il était a false pour un effet sychronisé. ( fonction open de js)
Pas trop compris :/
Ya un moyen pour synchroniser le navigateur avec la reponse de l'objet, autre que de mettre false?
Ou pouquoi quand on met false ca couille?


Message édité par Decapfour le 27-06-2007 à 11:21:59
n°1579820
masklinn
í dag viðrar vel til loftárása
Posté le 27-06-2007 à 11:30:37  profilanswer
 

Ca ne couille pas quand on met false, false génère un appel synchrone bloquant (qui freeze tout le navigateur, accessoirement) donc au lieu de mettre un callback on met le code de traitement derrière le xhr.send(null).
 
C'est marqué dans les docs d'ailleurs...


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1579841
Decapfour
Posté le 27-06-2007 à 11:53:48  profilanswer
 

Cad?
C'est que ca bloquait pas la navigateur avec false et l'histoire de l'appel qui marchait pas, donc je me demandais :/
Tu proposerais de mettre le code de la fonction call dans la fonction de l'appel de l'objet c'est ça?
Le pb c'est que j'apelle très souvent call :/

n°1579842
masklinn
í dag viðrar vel til loftárása
Posté le 27-06-2007 à 11:54:13  profilanswer
 

vas lire les docs


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1579851
Decapfour
Posté le 27-06-2007 à 12:06:38  profilanswer
 

Ok... merci :/

n°1579861
theredled
● REC
Posté le 27-06-2007 à 12:27:01  profilanswer
 

en gros il te dit que .onreadystatechange ne sert à rien en synchrone.
Ta fonction Call() EST la fonction qui appelle l'objet, donc elle reste mais tu la modifie.


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1579921
Decapfour
Posté le 27-06-2007 à 14:38:18  profilanswer
 

Je peux la modifier comment?
 
PS : la doc c'est sympa mais google trouve pas grand chose a part mettre false a la place de true, et je me vois mal dire a mon patron que je vais lire une doc de 40 pages pour trouver une erreur qu'en 5 min avec un peu de bonne vonlonté vous pourriez m'expliquer.

n°1579926
masklinn
í dag viðrar vel til loftárása
Posté le 27-06-2007 à 14:43:32  profilanswer
 

http://developer.mozilla.org


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1579930
Decapfour
Posté le 27-06-2007 à 14:49:23  profilanswer
 

Ecoutes c'est super.... Tu lis les post de temps en temps? Enfin bon...
Donc sinon rien pour me dire pouquoi ca marche avec firebug?

mood
Publicité
Posté le 27-06-2007 à 14:49:23  profilanswer
 

n°1579932
Decapfour
Posté le 27-06-2007 à 14:53:23  profilanswer
 

Methods
open(mode, url, boolean)  mode: type of request, GET or POST
url: the location of the file, with a path.
boolean: true (asynchronous) / false (synchronous).
optionally, a login and a password may be added to arguments.
send("string" )  null for a GET command.
 
Hmm Hmmmm
Mais encore?
 
PS : je tiens vraiment au synchone car une fois sur deux, le script met un peu plus de temps, et un getElementbyID derrière aime pas trop chercher un truc que le call a pas encore renvoyé.

Message cité 1 fois
Message édité par Decapfour le 27-06-2007 à 14:54:37
n°1579933
masklinn
í dag viðrar vel til loftárása
Posté le 27-06-2007 à 14:53:27  profilanswer
 

Decapfour a écrit :

Ecoutes c'est super.... Tu lis les post de temps en temps?


Jamais, je suis un bot et je t'emmerde.


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1579937
Decapfour
Posté le 27-06-2007 à 14:55:51  profilanswer
 

Constructif dis moi ^^
Jchais pas tu semble avoir la solution, alors bon, me dire d'aller voir une doc, c'est pas un peu... abusé?

n°1579944
Decapfour
Posté le 27-06-2007 à 15:08:28  profilanswer
 

Code :
  1. xhr.open( "GET", url,  false);
  2.     xhr.send(null);
  3. response.innerHTML = xhr.responseText;


Dans une fonction call_asynch() ça marche, mais c'est "bon"?

n°1579946
masklinn
í dag viðrar vel til loftárása
Posté le 27-06-2007 à 15:11:41  profilanswer
 

Decapfour a écrit :

Jchais pas tu semble avoir la solution, alors bon, me dire d'aller voir une doc, c'est pas un peu... abusé?


non

Decapfour a écrit :

Code :
  1. xhr.open( "GET", url,  false);
  2.     xhr.send(null);
  3. response.innerHTML = xhr.responseText;


Dans une fonction call_asynch() ça marche, mais c'est "bon"?


oui, mais c'est un appel synchrone pas un appel asynchrone.


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1579950
Decapfour
Posté le 27-06-2007 à 15:18:32  profilanswer
 

Oui, mais l'appel synchrone c'est le but justement :/
Sinon merci

n°1579958
theredled
● REC
Posté le 27-06-2007 à 15:36:28  profilanswer
 

Decapfour a écrit :

Constructif dis moi ^^
Jchais pas tu semble avoir la solution, alors bon, me dire d'aller voir une doc, c'est pas un peu... abusé?


Pas vraiment, là c'est un truc assez basique, ya 38 tutos sur le sujet, et savoir chercher dans la doc officielle (savoir où elle est, ou chercher, etc) est complètement indispensable pour être un minimum indépendant. La doc en sait plus que n'importe quel forumeur ;) (a part pour les bugs p-e, encore que ca dépend:o)

 
Decapfour a écrit :

Code :
  1. xhr.open( "GET", url,  false);
  2.     xhr.send(null);
  3. response.innerHTML = xhr.responseText;


Dans une fonction call_asynch() ça marche, mais c'est "bon"?


call_synch(), tu veux dire :o
Oui c'est bon.

 
Decapfour a écrit :

PS : je tiens vraiment au synchone car une fois sur deux, le script met un peu plus de temps, et un getElementbyID derrière aime pas trop chercher un truc que le call a pas encore renvoyé.


-Le synchrone attent la réponse du serveur et pendant ce temps, freeze le navigateur. Quand la réponse est arrivé, il reprend le script là ou il était. Ca t'as pigé.
-L'asynchrone éxécute une fonction donnée (définie par .onreadystatechange) à chaque étape de la requete (envoyé, en cours, renvoyé, recu si je ne m'abuse). Dans cette fonction tu teste cette étape et comme ça, tu peux éxecuter un code seulement un fois que la réponse est arrivé (.readystate=4). Donc si tu mets ton getElementById ici, ça devrait pas poser de pb, si ?


Message édité par theredled le 27-06-2007 à 15:37:52

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Ajax et Firefox

 

Sujets relatifs
[Résolu][AJAX] server erreur 500Pb menu déroulant entre IE et Firefox
problème d'affichage IE/FirefoxDécalage balise <li> different entre IE et Firefox
[Resolu]Attente fin d'appel de script PHP avec AJAXMenu dynamique qui ne s'affiche pas sous Firefox
[Résolu] Ajax - [object HTMLTextAreaElement]Pb AJAX+Firefox : readyState ne dépasse pas le 1
AJAX et firefox j'arrive pas a envoyer une requete POST[AJAX] Les boutons ne sont pas cliquables dans firefox
Plus de sujets relatifs à : Ajax et Firefox


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)