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 :

Exécuter une fonction à la suite de deux autres


Sujet :

JavaScript

  1. #1
    Membre éclairé Avatar de solo190
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2007
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 412
    Par défaut Exécuter une fonction à la suite de deux autres
    Hello All ,
    j'utilise un système de callback pour exécuter une fonction (Arrêter une animation) à la suite du traitement des deux autres.
    le soucis actuel est le suivant, que lorsque je lance l'animation , j’exécuter ensuite mes deux fonctions de traitement , le callback n'attend pas la fin des traitement précédent mais il arrêt aussi tôt l’animation.

    declanchement des travaux .
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
          <button type="button" class="btn btn-primary" id="btn_rechercher" onclick="extraire_reports(successCallback)" style="float:left;">Rechercher</button>

    mes fonction JS
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    function successCallback()
    {
        document.getElementById('btn_annimation').style.visibility="hidden";
    }
     
    function lancer_annimation(successCallback)
    {
        document.getElementById('btn_annimation').style.visibility="";
    }
     
    function extraire_reports(successCallback, failureCallback){
     
     
        lancer_annimation();
     
        var date_debut=document.getElementById('date_debut').value;
     
        var date_fin=document.getElementById('date_fin').value;
     
        label_texte_header_recap.innerHTML=('RECAP Des Opérateur Du '+date_debut+' Au '+date_fin).toUpperCase();  
     
        label_texte_header_detail.innerHTML=('Detail Des Opérateur Du '+date_debut+' Au '+date_fin).toUpperCase();
     
        chargerdetailreports(date_debut,date_fin);
     
        chargerrecaptransaction(date_debut,date_fin); 
     
       successCallback();
     
        //failureCallback();
     
    }
    Merci!

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    Bonjour,
    mes deux fonctions de traitement , le callback n'attend pas la fin des traitement précédent
    si tes deux fonctions sont asynchrones, il n'y a aucune raison que la fonction suivante attende.

    Mais cela n'est que pure spéculation attendu que l'on ne connait pas la teneur de tes fonctions chargerdetailreports et chargerrecaptransaction.

    Dans l'attente

  3. #3
    Membre éclairé Avatar de solo190
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2007
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 412
    Par défaut
    Hello NoSmoking,
    Effectivement les deux fonctions sont asynchrones , pour resoudre ce probleme voici comment j'appel mes fonctions finalement.

    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 extraire_reports(){
     
        lancer_annimation();
     
        var date_debut=document.getElementById('date_debut').value;
     
        var date_fin=document.getElementById('date_fin').value;
     
        label_texte_header_recap.innerHTML=('RECAP Des Opérateur Du '+date_debut+' Au '+date_fin).toUpperCase();  
     
        label_texte_header_detail.innerHTML=('Detail Des Opérateur Du '+date_debut+' Au '+date_fin).toUpperCase();
     
        chargerdetailreports(date_debut,date_fin);
     
     
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function chargerdetailreports(date_debut,date_fin)
    {
        // Traitement ........
     
        /// et a la fin j'appel chargerrecaptransaction
        chargerrecaptransaction (date_debut,date_fin);
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function chargerrecaptransaction (date_debut,date_fin)
    {
        // Traitement ........
     
        /// et a la fin j'appel  successCallback pour arreter l annimation
        successCallback();
    }
    Et tout fonctionne parfaitement .
    As tu une meilleur solution ?
    Merci.

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    As tu une meilleur solution ?
    Non, juste un conseil.
    Si ta fonction successCallback n'est appelée qu'une seule fois, de plus elle ne comporte qu'une ligne, autant mettre le contenu de celle-ci directement en lieu et place de son appel.
    Idem pour ta fonction lancer_annimation.

  5. #5
    Membre éclairé Avatar de solo190
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2007
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 412
    Par défaut
    hello NoSmoking,
    Effectivement tu as raison .
    Merci. A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Exécuter une fonction avant une autre
    Par islyoung2 dans le forum Général JavaScript
    Réponses: 22
    Dernier message: 21/07/2010, 15h51
  2. Réponses: 9
    Dernier message: 29/06/2010, 16h44
  3. Réponses: 5
    Dernier message: 23/02/2009, 09h21
  4. [A-03] exécuter une fonction dans une autre BDD
    Par ibill dans le forum VBA Access
    Réponses: 13
    Dernier message: 20/11/2008, 11h03
  5. exécuter une fonction parmi tant d'autres
    Par chrix10.2 dans le forum Général Python
    Réponses: 4
    Dernier message: 29/12/2006, 09h39

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