IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Attendre la fin de l'execution d'une fonction


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Profil pro
    D�veloppeur Java
    Inscrit en
    Octobre 2004
    Messages
    201
    D�tails du profil
    Informations personnelles :
    �ge : 43
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Java

    Informations forums :
    Inscription : Octobre 2004
    Messages : 201
    Par d�faut Attendre la fin de l'execution d'une fonction
    Bonjour,

    Mon script dispose de plusieurs fonction dont certaines doivent s'executer au debut.

    Je soupsonne mon script de commencer a executer en parallele d'autre fonction alors que la premiere n'a toujours pas termine, car j'ai des erreurs qui correspondent a cette logique. Voici un exemple:

    function1 : remplir un tableau avec 1000 valeurs
    function2 : afficher tableau[752]

    Defois ca marche, d'autres fois j'ai une erreurs comme quoi la valeur n'existe pas. Je me demande donc si defois la tableau est pas finit de remplir alors qu'il essaye deja de recuperrer la valeur...

    Deja est-ce possible ? et ensuite Y a-t-il moyen d'attendre d'etre sur que la fonction1 ait finit de s'executer avant de lancer la function2 ?

    Merci.
    Sebastien.

  2. #2
    R�dacteur

    Avatar de Bovino
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par d�faut
    Essaye en appelant la fonction 2 � la fin de la fonction 1 :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    function fonction1(){
    // Tu remplis ton tableau
    fonction2(nombre);
    }
    function fonction2(nombre){
    // Tu affiches la valeur souhaitée
    }
    Pas de question technique par MP !
    Tout le monde peut participer � developpez.com, vous avez une id�e, contactez-moi !
    Mes formations video2brain : La formation compl�te sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'int�gration de JSFiddle et CodePen sur le forum

  3. #3
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    +1 Beef
    sinon il faudrait modifier un flag � la fin de la premi�re et avoir un setInterval qui joue le role d'aiguilleur et ne lance la fonction qu'apr�s modif du flag ...
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  4. #4
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    D�cembre 2002
    Messages
    3 573
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 52

    Informations professionnelles :
    Activit� : D�veloppeur Web

    Informations forums :
    Inscription : D�cembre 2002
    Messages : 3 573
    Par d�faut
    Citation Envoy� par SpaceFrog Voir le message
    il faudrait modifier un flag � la fin de la premi�re et avoir un setInterval qui joue le role d'aiguilleur et ne lance la fonction qu'apr�s modif du flag ...

    sinon, je propose d'utiliser les ev�nements. Qu'en pensez-vous ?

  5. #5
    Expert confirm�
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Ao�t 2003
    Messages
    3 684
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activit� : danseur

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 3 684
    Par d�faut
    ben oui; typiquement, fonction 2 doit intervenir "onload";

  6. #6
    R�dacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Par d�faut
    Citation Envoy� par metalcoyote Voir le message
    Je me demande donc si defois la tableau est pas finit de remplir alors qu'il essaye deja de recuperrer la valeur...

    Deja est-ce possible ?
    le code est ex�cut� s�quentiellement, donc je ne vois pas comment c'est possible si tu n'utilises pas de timer dans ta 1ere fonction, � moins d'avoir diff�rents threads (et le multithreading n'existe pas en javascript de base)

  7. #7
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    BSS javascript fonctionne en bulle pas en sequentiel au niveau des fonctions ...
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  8. #8
    Membre confirm�
    Profil pro
    D�veloppeur Java
    Inscrit en
    Octobre 2004
    Messages
    201
    D�tails du profil
    Informations personnelles :
    �ge : 43
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Java

    Informations forums :
    Inscription : Octobre 2004
    Messages : 201
    Par d�faut
    J'ai essaye la methode bovine mais ca n'a pas l'air de marcher.

    Je vais me renseigner sur le setInterval. Je connais pas cette methode...

    Merci.

  9. #9
    Membre confirm�
    Profil pro
    D�veloppeur Java
    Inscrit en
    Octobre 2004
    Messages
    201
    D�tails du profil
    Informations personnelles :
    �ge : 43
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Java

    Informations forums :
    Inscription : Octobre 2004
    Messages : 201
    Par d�faut
    Citation Envoy� par SpaceFrog Voir le message
    BSS javascript fonctionne en bulle pas en sequentiel au niveau des fonctions ...
    C'est quoi en bulle ?

    sinon, je propose d'utiliser les ev�nements. Qu'en pensez-vous ?
    C'est quoi les evenements ? lol

    Jvais regarder ca de plus pres

  10. #10
    Membre Expert Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Par d�faut
    Salut,

    Le tableau, tu le remplis pas via un service web (asynchrone) par pur hasard en passant comme �a?

  11. #11
    Membre confirm�
    Profil pro
    D�veloppeur Java
    Inscrit en
    Octobre 2004
    Messages
    201
    D�tails du profil
    Informations personnelles :
    �ge : 43
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Java

    Informations forums :
    Inscription : Octobre 2004
    Messages : 201
    Par d�faut
    Euh si

    J'utilise un XMLHttpRequest pour recuperer les infos, et je remplis, j'ai plusieurs fonctions comme ca...

  12. #12
    Membre �clair�
    Inscrit en
    D�cembre 2008
    Messages
    46
    D�tails du profil
    Informations personnelles :
    �ge : 48

    Informations forums :
    Inscription : D�cembre 2008
    Messages : 46
    Par d�faut Et comme �a, �a marche ?
    Essaie �a

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    function fonction1(){
    		var txtFile = new XMLHttpRequest();
    			txtFile.open("GET", "./valeurs.dat", true);
    			txtFile.send(null);
    			txtFile.onreadystatechange = function() {
    			  if (txtFile.readyState === 4) {  
    			      allText = txtFile.responseText;
    			      lines = txtFile.responseText.split("\n");
    			       for(var i=0; i<=lines.length;i++){
    			       		tab = lines[i].split(":");
    			       		monTableau[tab[0]] = tab[1]+":"+tab[3];
    			       }
    				function2();
    			   }
    			}
     
    	}
    ou �a

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function fonction1(){
    		var txtFile = new XMLHttpRequest();
    			txtFile.open("GET", "./valeurs.dat", false);
    			txtFile.send(null);
    			allText = txtFile.responseText;
    			lines = txtFile.responseText.split("\n");
    			for(var i=0; i<=lines.length;i++){
    			       tab = lines[i].split(":");
    			       monTableau[tab[0]] = tab[1]+":"+tab[3];
    			}
    			function2();
     
    	}
    Saray

  13. #13
    Membre confirm�
    Profil pro
    D�veloppeur Java
    Inscrit en
    Octobre 2004
    Messages
    201
    D�tails du profil
    Informations personnelles :
    �ge : 43
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Java

    Informations forums :
    Inscription : Octobre 2004
    Messages : 201
    Par d�faut
    Non plus

    J'ai meme mis toutes les fonctions en une, pour que ca ressemble a du sequentiel et toujours pas

    Pourtant ca me parrait pas dur ce que je demande
    Comprends plus...

  14. #14
    Membre Expert Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Par d�faut
    Ca ne nous aide pas � t'aider. Etant plut�t feignant, je t'encourage vivement � nous fournir un code minimaliste et directement utilisable par nos soins illustrant ton probl�me.
    Faire �a nous simplifiera la vie pour t'aider, mais surtout te forcera � d�composer le probl�me. Ca m'arrive souvent de vouloir poster sur le forum et de r�soudre mon probl�me avant de poster en me for�ant � faire cette illustration minimaliste.

  15. #15
    Expert confirm�
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Ao�t 2003
    Messages
    3 684
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activit� : danseur

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 3 684
    Par d�faut
    J'insiste: si la requ�te xhr est lanc�e automatiquement (sans demande utilisateur), onload fera l'affaire pour fonction 2();

  16. #16
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut


    comme expliqu� pr�c�demment :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <script type='text/javascript'>
    var BigTab=new Array()
    function one(){
    BigTab=new Array()
    for(i=0;i<10000;i++){
     
    BigTab[i]=Math.ceil(Math.random()*i)
    }
    }
    function two(indice){
    var check=setInterval(function(){
      if(BigTab[indice]){clearInterval(check);
                     alert(BigTab[indice])}},10)
                     }
     
    one();
    two(5000);
     
    </script>
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

Discussions similaires

  1. Attendre la fin de l'ex�cution d'une instruction?
    Par mhanyu dans le forum G�n�ral JavaScript
    R�ponses: 11
    Dernier message: 23/08/2007, 16h41
  2. Forcer la fin de l'execution d'une fonction
    Par Valkirion dans le forum C++
    R�ponses: 7
    Dernier message: 10/08/2007, 14h32
  3. Attendre la fin de l'execution d'une fonction
    Par Invit� dans le forum G�n�ral JavaScript
    R�ponses: 4
    Dernier message: 20/04/2007, 10h33
  4. R�ponses: 4
    Dernier message: 24/01/2007, 00h48
  5. R�ponses: 3
    Dernier message: 22/10/2004, 12h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo