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 :

Fonction setInterval non appelée


Sujet :

JavaScript

  1. #1
    Membre émérite
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 122
    Par défaut Fonction setInterval non appelée
    Bonsoir à toutes et à tous,

    Dans un script, j'écris :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <script>
            let UPD = 1;
            ...
            if (UPD > 0)
              setInterval(updateChart, 3000); // Mise à jour toutes les 3 secondes
          </script>
    La fonction setInterval est bien appelée.

    Maintenant, j'écris :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <script>
            let UPD = 0;
            ...
            document.getElementById('Forme_Onde').addEventListener('click', function() {
              updateChart(); // Lance l'affichage immédiat
              UPD = 1;
            });
            ...
            if (UPD > 0)
              setInterval(updateChart, 3000); // Mise à jour toutes les 3 secondes
          </script>
    Quand j'appuie sur le bouton déclenchant le listener, la fonction setInterval n'est plus appelée bien que updateChart(); soit appelé.

    Qu'est-ce qui cloche ?

    Cordialement.

    Pierre.

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 667
    Par défaut
    est ce que "setInterval" est appelé dans la fonction updateChart ?
    si c'est le cas, mettez UPD = 1; avant l'appel sinon la condition UPD > 0 ne sera pas vraie.

  3. #3
    Membre émérite
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 122
    Par défaut
    Citation Envoyé par mathieu Voir le message
    est ce que "setInterval" est appelé dans la fonction updateChart ? ...
    Non.

    En fait, je tourne autour d'un problème que je n'arrive pas à résoudre car je suis vraiment nul en javascript.

    Je crois que pour avancer, il faudrait que je comprenne bien comment agit une espace <script> ... </script> au sein d'une page HTML.

    • Comment est lu et interprété cet espace au moment du chargement de la page,
    • Comment est lu et interprété cet espace lorsque que j'appuie sur un bouton qui renvoie à une fonction dans cet espace.
    • ...


    En résumé, avant que je ne repose des questions dont je ne sais pas évaluer ce qu'elles m'apportent, il faudrait d'abord que je puisse comprendre ce fonctionnement. D'où ma question : où trouver un tuto ou équivalent montrant comment cela fonctionne.

    Cordialement.

    Pierre.

  4. #4
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 667
    Par défaut
    tous les morceaux de code qui sont dans des balises javascript sont exécutés au chargement de la page d'une seule traite.
    par exemple le code suivant va afficher "22" dans le console.

    Code html : 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
    <script>
     
    const valeur = 22;
     
    </script>
     
     
    <p>
        du code html
    </p>
     
     
    <script>
     
    console.log(valeur);
     
    </script>

    je sais que c'est pratique d'avoir dans le même fichier le code html du bouton et ensuite par exemple le code javascript lié à ce bouton mais quand votre page va grandir, vous allez avoir de plus en plus de choses dans votre fichier et cela va être compliqué de s'y retrouver.
    donc je vous conseille de mettre le code javascript dans un fichier à part qui sera chargé par une balise "script". et ensuite vous pourrez même répartir votre code javascript dans plusieurs fichiers.

  5. #5
    Membre émérite
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 122
    Par défaut
    Citation Envoyé par mathieu Voir le message
    tous les morceaux de code qui sont dans des balises javascript sont exécutés au chargement de la page d'une seule traite. ...
    supposons le code suivant :

    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
    <script>
      let choix = 0;
      function faireCela() {
        ...
        ...
        ...
      }
      function faireCeci() {
        ...
        choix = 2;
        ...
      }
      if (choix == 2)
        faireCela();
    </script>
    Que va-t-il se passer ?

    Au chargement :

    • la variable choix va être créée et initialisée à 0,
    • les deux fonctions faireCeci et faireCela ne vont pas être exécutées car pas appelées,
    • choix valant 0, faireCela ne sera pas exécutée

    Après, supposons que l'appui sur un bouton demande l'exécution de la fonction faireCeci, que va-t-il se passer ?

    • est-ce que la variable choix existe toujours ?
    • si elle existe, l'appel de la fonction faireCeci va la mettre à 2.
    • pour autant, est-ce que le dernier morceau de code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (choix == 2)
        faireCela();
    va être exécuté ?

    Cordialement.

    Pierre.

  6. #6
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 667
    Par défaut
    Citation Envoyé par ChPr Voir le message
    est-ce que la variable choix existe toujours ?
    cette variable est déclarée au plus haut du code donc elle peut être utilisée dans des fonctions.
    suivant l'endroit où sont déclarées les variables, elles peuvent aussi être limitées à une fonction ou une boucle par exemple :
    https://developer.mozilla.org/fr/doc...Statements/let

    Citation Envoyé par ChPr Voir le message
    est-ce que le dernier morceau de code va être exécuté ?
    ce code est exécuté seulement une fois au chargement de la page.
    si vous voulez faire une modification qui dépend du contenu de la variable, vous pouvez faire une fonction qui sera appelée à chaque changement de la valeur.

  7. #7
    Membre émérite
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 122
    Par défaut
    Merci "mathieu", j'y vois déjà plus clair.

    Cordialement.

    Pierre.

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 19/05/2010, 15h09
  2. Réponses: 10
    Dernier message: 31/03/2010, 23h34
  3. appel fonction fichier non DLL
    Par bergoliv dans le forum Général Java
    Réponses: 1
    Dernier message: 24/01/2009, 00h23
  4. non appel de fonction sur un onsubmit
    Par toams69 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 31/10/2008, 21h39
  5. Appel fonction setInterval
    Par billoum dans le forum Flash
    Réponses: 2
    Dernier message: 14/02/2007, 11h31

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