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 :

setTimeout ne se stoppe pas avec le clearTimeout


Sujet :

JavaScript

  1. #1
    Membre régulier Avatar de tidus_6_9_2
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2008
    Messages : 200
    Points : 116
    Points
    116
    Par défaut setTimeout ne se stoppe pas avec le clearTimeout
    Bonjour à toutes et à tous,

    J'ai une petite question concernant le clearTimeOut.

    J'ai deux fonctions


    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
     
    var globale = '';
     
    function Un(parametres){
          globale = setTimeout(function(){Un(parametres);},30000);
    }
     
    function Deux(){
          if(globale!=''){
    	clearTimeout(globale);
    	globale='';
          }
     
          Un();
    }
    Donc en gros, ma fonction Deux() est appelée au chargement de la page. Après, lorsque je fais un traitement différent, j'appelle la fonction Deux() de nouveau, et à ce moment, il faut que le premiet SettimeOut s'arrête. Mais cela ne fonctionne pas de cette manière, du moins je n'en ai pas l'impression... Es-ce normal ?

    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    Ca marche très bien chez moi ^^
    Quel est le souci observé ?

  3. #3
    Membre régulier Avatar de tidus_6_9_2
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2008
    Messages : 200
    Points : 116
    Points
    116
    Par défaut
    Hello,

    Merci pour ta réponse. J'ai trouvé le soucis, en faite ce qu'il faisait, c'est qu'imaginons que je lance le fonction Deux(), cette dernière me permettrait de changer de page.

    Si je cliquais deux fois sur le bouton ou plusieurs fois par exemple pour atterir sur la page 5 (donc 5 clic rapides), au bout de 30 secondes la page 2 s'affichait (ou une autre page au hasard) car le setTimeout ne s'arrêtait pas.

    J'ai pallié au problème en faisant comme suis :

    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
     
    var globale = '';
     
    function Un(parametres){
          clearTimeout(globale); //ce qu'il manquait pour être sûr qu'il s'arrête avant d'être relancé.
          globale = setTimeout(function(){Un(parametres);},30000);
    }
     
    function Deux(){
          if(globale!=''){
    	clearTimeout(globale);
    	globale='';
          }
     
          Un();
    }
    Pis, peut-être, j'ai aussi modifié une chose dans mon code. En faite j'utilise JQuery, je faisait une requête asynchrone et dans le success de la méthode je faisait justement le setTimeout. Ce que j'ai fait, j'ai mis la requête en synchrone et cela fonctionne correctement.

    Désolé de ne pas avoir répondus plus tôt, charge de travail oblige :-)

    Merci beaucoup en tout cas pour ta réponse et pour l'intérêt :-)

    A +

    Tidus

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

Discussions similaires

  1. faire attendre l'execution(pas avec setTimeout)
    Par bubuche87 dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 17/07/2007, 09h37
  2. [debutant] premier pas avec le SDK directX9
    Par arno2004 dans le forum DirectX
    Réponses: 6
    Dernier message: 27/05/2004, 21h03
  3. Rollback ne marche pas avec interbase
    Par Tsimplice dans le forum Bases de données
    Réponses: 2
    Dernier message: 09/03/2004, 08h39
  4. Programme fonctionnant sur Eclipse mais pas avec le jar?
    Par kirik dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 10/02/2004, 13h43
  5. Réponses: 3
    Dernier message: 12/05/2003, 12h11

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