Souris et clavier inactifs avec AJAX

Lucien
Invité n'ayant pas de compte PHPfrance

31 août 2011, 18:56

Bonjour,

je développe actuellement un site où je dois réaliser des requêtes en AJAX.
Mon problème est que lorsqu'une requête est exécutée et tant qu'elle n'est pas complète, la souris et le clavier n'ont plus aucun effet sur la page (écriture dans un formulaire par exemple). Cela est vraiment problématique lorsque que je fais une requête régulièrement pour afficher des informations en temps réel.

J'utilise la fonction javascript suivante avec un appel du type if(texte_de_sortie=file('url_du_fichier_php')){ utilisation du texte de sortie }

Code : Tout sélectionner

function file(fichier) { if(window.XMLHttpRequest) // FIREFOX xhr_object = new XMLHttpRequest(); else if(window.ActiveXObject) // IE xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); else return(false); xhr_object.open("GET", fichier, false); xhr_object.send(null); if(xhr_object.readyState == 4) return(xhr_object.responseText); else return(false); }
Le problème vient-il de la manière que j'ai d'utiliser l'objet XHR, ou existe-t-il une manière de contourner ce temps mort ?

Merci,

Lucien

devlop78
Invité n'ayant pas de compte PHPfrance

01 sept. 2011, 05:27

xhr_object.open("GET", fichier, false);
Tu lui demandes une requête synchrone ...

ViPHP
AB
ViPHP | 5818 Messages

01 sept. 2011, 18:31

... Et donc finalement tu ne fais pas vraiment de l'Ajax puisque cela signifie "Asynchronous Javascript And Xml".
Mets donc "true" comme paramètre dans ton objet xhr_object.open. Sinon effectivement le navigateur est bloqué en attendant la réponse.

Lucien
Invité n'ayant pas de compte PHPfrance

01 sept. 2011, 18:41

Ah, oui, effectivement, je me suis renseigné sur la question et ça change la donne.

Merci beaucoup

Lucien
Invité n'ayant pas de compte PHPfrance

01 sept. 2011, 18:51

Et cela veut-il dire que je suis obligé de recréer un objet XHR par fonction utilisant AJAX (car dans mon cas, plusieurs fonctions pourraient être exécutées à la suite) ?