Attente fin d'appel de script PHP avec AJAX [Resolu] - HTML/CSS - Programmation
Marsh Posté le 04-06-2007 à 11:03:06
tu sais que tu peux faire des requetes synchrones en js ( ie : le navigateur est bloqué tant que la requete est pas revenue ) ?
c'est un des paramètres de la fonction 'open'
Marsh Posté le 04-06-2007 à 11:06:54
mais si je ne me trompe pas ca ne marche pas ici?
C'est important que ca n'affiche pas le resultat dans une nouvelle fenètre, mais bien dans un alert.
Marsh Posté le 04-06-2007 à 15:34:37
vais voir ta fonction call, il va ama falloir la changer.
Marsh Posté le 04-06-2007 à 15:39:39
Code :
|
Je vais pas le cacher c'est pas moi qui l'ai faite, je l'ai juste comprise et utilisée.
j'avais bien penser utiliser le truc xhr.readystate, mais comment y accèder a partir de la fonction call?
Marsh Posté le 04-06-2007 à 15:43:05
Code :
|
Marsh Posté le 04-06-2007 à 15:44:13
Code :
|
Et ensuite pour l'appeler "comme avant" avec le innerHTML:
Code :
|
avec un alert tu as juste à changer f en:
Code :
|
edit: moi on m'a dit sans synchrone je fais sans
Marsh Posté le 04-06-2007 à 15:44:38
flo850 a écrit : tu sais que tu peux faire des requetes synchrones en js ( ie : le navigateur est bloqué tant que la requete est pas revenue ) ? |
gatsu35 a écrit :
|
c'est ce que j'avais dit
Marsh Posté le 04-06-2007 à 15:55:42
Merci bcp les gens
Ca marche bien le coup du false dans le open
J'avais pas assez decrypté la fonction apparement
Marsh Posté le 04-06-2007 à 10:55:11
Voila j'ai un code javascript qui quadn on clique sur un bouton appelle avec l'ajax un script php qui s'execute, et renvoie la reponse de ce script et la met dans le innerHTML d'un div.
Le problème étant que je voudrais afficher ce qu'il y a dans le div, mais que le temps d'execution du script php peut etre varaible.
Le systeme d'execution du script est asynchrone ( ajax oblige ) et donc l'execution du javascript continue, et ce meme si le script php n'a pas fini ses traitements en arrière plan.
Pour faire un alert() du innerHTML rempli, c'est pas l'optimal, de temps en temps le alert est vide, le script marche bien, mais ca peut vite paniquer les utilisateurs.
Ce que j'ai trouvé pour faire un petit peu mieux, c'est le setTimeout() mais on doit mettre un temps fixe, et justement le temps est très varaible, et je vais pas mettre 3 sec d'attente non plus, faut que ce soit un minimum réactif, sinon les utilisateurs vont cliquer 50 fois sur le bouton.
vous cassez pas avec le call, ca appelle un script php et renvoie la reponse ( tous les echos ) dans le innerhtml d'un div ou autre.
vous cassez pas non plus avec les variables, on s'en fous ça marche bien.
le principal c'est dans les deux if, a l'endroit des setTimeout
Ce que je voudrais :
==> Pouvoir faire attendre le javascript de la fin de call
Ce que j'ai essayé :
==> boucle d'attente active, marche pas.(while(document.getElementByid(..).innerHTML ==""
==>setTimeout, pas optimal
Message édité par Decapfour le 04-06-2007 à 15:56:21