Rechercher : dans
Par :

Ajax - réception Synchrone et FireFox

Dernière réponse le 9 jan 2009 à 11:40:48 Helyis, le 23 oct 2008 à 22:41:48 
 Signaler ce message aux modérateurs

Bonjour,

j'ai un petit souci de réception des données avec FireFox.
Si mon 'open' est déclaré comme ceci:
xhr.open("POST", "aff.php", true); // donc en asynchrone
ça fonctionne parfaitement.
Si il est déclaré comme ça:
xhr.open("POST", "aff.php", false); // donc en synchrone
ça ne fonctionne plus du tout. Les données sont bien reçues (vues dans la réponse avec FireBug), mais pas affichées.

D'un autre côté, ça fonctionne parfaitement avec Chrome, Opera et Internet Explorer 7.0.
Sur ces browsers autres que FireFox, xhr.open("POST", "aff.php", true); fonctionne quasiment correctement, sauf que de temps en temps, les données n'ont pas le temps de s'afficher. L'utilisation du mode Synchrone était donc la solution.

Quelqu'un aurait-il une idée ?


X.

Meilleures réponses pour « Ajax réception Synchrone et FireFox » dans :
Optimiser Firefox VoirOptimisation avec Haut Débit Si votre ordinateur a un processeur peu puissant Optimiser l'utilisation de la mémoire Logiciel d'optimisation de Firefox J'ai fait une fausse manipulation J'ai créé une valeur/chaîne de trop J'ai mal attribué...
[Outlook/ThunderBird/Incredimail] Envoi/Réception de mail VoirVous avez des problèmes d'envoi ou de réception de mail dans votre client de messagerie ? Cet article va vous aider à diagnostiquer le problème. 1. Introduction à la messagerie 2. Problèmes d'envoi de mail 3. Problèmes de réception de...
Synchroniser ses contacts iPhone/iPod touch avec Outlook VoirLorsque vous essayez de synchroniser les contacts, la messagerie et/ou le calendrier de votre iPhone/iPod touch sur un PC avec Outlook, iTunes affiche le message d'erreur suivant : Soit il n'existe pas de client de messagerie par défaut, soit...
Télécharger SyncBack VoirSyncBack est un logiciel de synchronisation de répertoires. Il peut être utilisé: pour effectuer des backups de fichiers (copies de sauvegarde) pour synchroniser des répertoires entre ordinateurs. pour synchroniser des clés USB ou disques...
Télécharger Portable Firefox VoirMozilla Firefox est un navigateur internet performant et personnalisable. L'interface possède des onglets pour une gestion des fenêtres plus efficace. Il possède également un gestionnaire de téléchargement. Portable Firefox est la version portable...
Le protocole TCP VoirLes caractéristiques du protocole TCP TCP (qui signifie Transmission Control Protocol, soit en français: Protocole de Contrôle de Transmission) est un des principaux protocoles de la couche transport du modèle TCP/IP. Il permet, au niveau des...
AJAX (Asynchronous Javascript And XML) VoirIntroduction à AJAX AJAX (Asynchronous Javascript And XML, traduisez Javascript asynchrone et XML) est une méthode de développement web basée sur l'utilisation d'un script Javascript pour effectuer des requêtes web à l'intérieur d'une page web...
AJAX (Asynchronous Javascript And XML) VoirAvantages liés à AJAx Les sites web utilisant AJAX bénéficient des avantages suivants : Une interface réactive car AJAX permet de modifier localement la page web ; Une rapidité d'exécution car seules les données à modifier dans la page sont...

1

pyschopathe, le 23 oct 2008 à 22:46:53
  • +1

Qu'est-ce que tu veux dire par "les données n'ont pas le temps de s'afficher" ?

Répondre à pyschopathe

2

Helyis, le 23 oct 2008 à 23:17:35

Hé bien, d'après ce que j'ai compris des modes Synchrone et Asynchrone, c'est qu'en Asynchrone, le script n'attend pas d'avoir reçu les données pour continuer. De fait, si le .php met trop de temps à répondre, les données n'arrivent pas.
En ce qui me concerne, ça se traduit par le fait que mon <DIV> de destination n'est pas actualisé. Les anciennes données restent affichée. Mais tout se passe bien lorsque je passe en mode Synchrone. Du moins pour les autres browsers que FireFox.

J'ai contourné le problème de la façon suivante:
var ua = navigator.userAgent;
if (ua.match("Firefox")) xhr.open("POST", "aff.php", true);
else xhr.open("POST", "aff.php", false);
mais c'est quand même pas bien normal que FireFox pose des problèmes comme ça.


X.

Répondre à Helyis

3

 Koulou, le 9 jan 2009 à 11:40:48

Essaie quelquechose comme ça:

/****************************************
dt = document.getElementsByTagName('body');
dt[0].style.cursor="wait";
var self=this;

if (window.ActiveXObject)
{
self.xmlHttpReq = new ActiveXObject('Microsoft.XMLHTTP');
}
else if(window.XMLHttpRequest)
{
self.xmlHttpReq = new XMLHttpRequest();

}

self.xmlHttpReq.open("POST", "aff.php", false);
self.xmlHttpReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

self.xmlHttpReq.send(tes_params);
dt[0].style.cursor="default";
document.getElementById(ta_divi).innerHTML=self.xmlHttpReq.responseText;

**************************************************/

En esperant que ça t'aide :-)

Répondre à Koulou
Collection CommentÇaMarche.net