Attendre fin d'execution

Signaler
Messages postés
22
Date d'inscription
dimanche 5 juin 2005
Statut
Membre
Dernière intervention
19 juillet 2006
-
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
-
Bonjour,

Je souhaite attendre la fin d'execution d'une xmlhttprequest pour rediriger l'utilisateur vers la page de démarrage...
si quelqu'un a une idée, le probleme du Settimeout c'est que le temps d'execution n'est jamas le même.
merci bien

7 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
34
bonjour,

>>attendre la fin d'execution d'une xmlhttprequest 

 xml.onreadystatechange = function()
    { 
      if(xml.readyState == 4)
      {
         xmlhttprequest fini
      }
    }

mais je n'ai sûrement pas saisi la question...
cordialement   Bul   
Site
Messages postés
22
Date d'inscription
dimanche 5 juin 2005
Statut
Membre
Dernière intervention
19 juillet 2006

oui effectivement mais je me suis suremnt mal exprimé.

en fait mettons :
 function fonction1 ()
{
   lafonctionxmlhttprequest('parma1', 'param2');
   window.location('test.asp');   <--- c'est cette redirection que je veux effectuer UNIQUEMENT a la fin de lafonctionxmlhttprequest()
}
peut etre est-ce plus clair?
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
34
et ben...
   c'est mon exemple...?!?
   xmlhttprequest fini ==>  window.location('test.asp');
cordialement   Bul   
Site
Messages postés
22
Date d'inscription
dimanche 5 juin 2005
Statut
Membre
Dernière intervention
19 juillet 2006

oui certes si jamais la redirection avait lieu a tous les coups mais la je redirige que dans certains cas c'est pourquoi je fais pas directement la redirection dans le xmlhttprequest.
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
34
if ( conditions remplis ) windows....
cordialement   Bul
Site
Messages postés
22
Date d'inscription
dimanche 5 juin 2005
Statut
Membre
Dernière intervention
19 juillet 2006

Je crois que mon probleme c'est que j'arrive pas a presenter le souci, je réessaie donc.

Pour l'instant j'ai :

function fonction1 ()
{
   lafonctionxmlhttprequest('parma1', 'param2');
   window.location('test.asp');   <--- c'est cette redirection que je veux effectuer UNIQUEMENT a la fin de lafonctionxmlhttprequest()
}
dans ce cas de figure javascript lance 'lafonctionxmlhttprequest('parma1', 'param2');' puis 'window.location('test.asp');' sans attendre la fin de l'execution de la premiere fonction lancée, ce qui provoque des problèmes d'execution... Le paliatif utilisé jusqu'a present est un SetTimeOut() sur la derniere fonction mais je voudrais trouver le moyen de savoir si la fonction est finie ça m'eviterai de devoir temporiser au maximum, parceque suivant les parametres, le temps d'execution de la requete 'lafonctionxmlhttprequest('parma1', 'param2');' varie enormément.

Autre exemple pour peut etre mieux comprendre :

Je voudrais :
function gobale ()
{
function1();
---- attendre fin execution de function1() ----
funcition2();
---- attendre fin execution de function2() ----
function3();
}
j'espere que mon discours est un peu plus clair maintenant ... (l'espoir fait vivre...)
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
34
finalement c'est :

   attendre la fin d'une fonction pour continuer.
j'ai compris ?

et, en fait, on ne peut pas (simplement)
quoique.. jesusonline n'a pas mis
   quelque chose dans les sources ?
   ( peut-être me trompe-je ! )

======================================
function un() {...}
function deux() {...}
...
un(); deux();
======================================
lance un, puis, relativement vite, lance deux

il faut faire
======================================
function deux() {...}
function un()   { traitement de un;
                  deux(); }
...
un();
et ici : plus rien !!! ( sauf </script> )
======================================

cordialement   Bul   
Site