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 :

utilisation d'une tempo (setTimeout)


Sujet :

JavaScript

  1. #1
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    296
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 296
    Points : 103
    Points
    103
    Par défaut utilisation d'une tempo (setTimeout)
    bonjour,

    je voudrais faire un clignotement
    voici ma boucle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
        var back = "fill:rgb(255,0,0)";
     
        this.m_rectElem.setAttribute("style", back);
     
        //TEMPO
        setTimeout("",1000);
     
        var back = "fill:rgb(255,255,255)";
        this.m_rectElem.setAttribute("style", back);
    mais la fonction setTimeout ne permet pas d'attendre

    des idées??

    merci

  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 : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setTimeout(instructions, durée)
    setTimeout attend 'durée' avant d'exécuter 'instructions'.
    Le reste du code est exécuté sans tenir compte du setTimeout.
    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
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    296
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 296
    Points : 103
    Points
    103
    Par défaut
    moi je voudrais que le reste du code ne s'execute pas
    c'est a dire que je veut unpoint d'attente

    une idée?

    merci

  4. #4
    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 : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setTimeout(function(){back = "fill:rgb(255,255,255)";this.m_rectElem.setAttribute("style", back);},1000);
    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

  5. #5
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    Citation Envoyé par cortex59 Voir le message
    moi je voudrais que le reste du code ne s'execute pas
    c'est a dire que je veut unpoint d'attente
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    var back = "fill:rgb(255,0,0)";
    this.m_rectElem.setAttribute("style", back);
    //TEMPO
    setTimeout(f1(this),1000);
     
    function f1(obj) {
        var back = "fill:rgb(255,255,255)";
        obj.m_rectElem.setAttribute("style", back);
    }
    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  6. #6
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    296
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 296
    Points : 103
    Points
    103
    Par défaut
    pas possible car il ne faut absolument pas que je continu la suite du code

    des autre idees?

    merci

  7. #7
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par cortex59 Voir le message
    pas possible car il ne faut absolument pas que je continu la suite du code

    des autre idees?
    Enlève-là !

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  8. #8
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    296
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 296
    Points : 103
    Points
    103
    Par défaut
    enlever quoi?

  9. #9
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par cortex59 Voir le message
    enlever quoi?
    Ben la partie du code qui ne doit "absolument pas continuer"
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  10. #10
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    296
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 296
    Points : 103
    Points
    103
    Par défaut
    NON lol

    donc d'apres vous il est imposible de faire une pause a par la methode bourrain

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for(var i=0; i<=10000; i++) { }
    serieux je peu pas fair ca une veille boucle for lol

    merci

  11. #11
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function f1() {
       var This=this;
       // Debut du code, this==>This
       setTimeout(function() {
          // Opération à faire après tempsAAttendre milisecondes
          // this ==> This dans ton code
       }, tempsAAttendre);
    }
    Fremy
    Pour vos développements Web et une navigation agréable, le tout gratuit :
    1) IE 8 + IE7Pro (Si vous ne connaissez pas IE7Pro, essayez !)
    2) FF 3 + Web Developper Toolbar + AdBlockPlus + FireBug + GreaseMonkey

  12. #12
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Je pensais que c'était clair : il faut que tu ré-explique exactement ce que tu veux faire.

    Pour ne pas exécuter un code à coup sûr, il suffit qu'il ne soit pas présent.

    Si tu laisses le tien, c'est qu'il doit servir à quelque chose => dans quel cas doit-il être exécuté et dans quel cas pas (comme dirait un pote photographe) ?

    Comment doit s'exécuter le code que tu nous donnes ?

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  13. #13
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    296
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 296
    Points : 103
    Points
    103
    Par défaut
    Je suis dans un Onrefresh() des que cette fonction est fini elle recommence

    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
     
    Dynamicvoyant.prototype.OnRefresh = function()
    {			
        var back = "fill:rgb(255,0,0)";  //rouge
     
        this.m_rectElem.setAttribute("style", back);
     
    //pause
     
        back = "fill:rgb(255,255,255)";  //blanc
     
        this.m_rectElem.setAttribute("style", back);
     
    //pause
     
    }
    pouvais vous m'aidez a remplacer les pausses?
    Si je met un setTime out il continu le code donc le voyant ne clignote pas il reste toujour en blanc

    merci

  14. #14
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par cortex59 Voir le message
    pouvais vous m'aidez a remplacer les pausses?
    C'est fait !
    A toi de l'intégrer ...

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  15. #15
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    296
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 296
    Points : 103
    Points
    103
    Par défaut
    tu comprend pas

    SetTimeout n'est pas une pause car il continu le code
    donc si je mais un setTimeout je ferai pas clignoter l'objet en changant la couleur

  16. #16
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par cortex59 Voir le message
    tu comprend pas

    SetTimeout n'est pas une pause car il continu le code
    donc si je mais un setTimeout je ferai pas clignoter l'objet en changant la couleur
    Relis mieux : dans l'exemple que je t'ai donné (bien amélioré par Fremy : merci à lui ) il n'y a plus de code derrière le setTimeout()
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  17. #17
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    296
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 296
    Points : 103
    Points
    103
    Par défaut
    on recapitule


    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
     
     
    function f1() 
    {
       setTimeout(function() {}, 1000);
    }
     
    Dynamicvoyant.prototype.OnRefresh = function()
    {			
        var back = "fill:rgb(255,0,0)";  //rouge
     
        this.m_rectElem.setAttribute("style", back);
     
    //pause
    f1();
     
        back = "fill:rgb(255,255,255)";  //blanc
     
        this.m_rectElem.setAttribute("style", back);
     
    //pause
    f1();
     
    }
    voila comment je l'ai compris
    mais ce n'est pas ca car ca marche pas lol

    merci

  18. #18
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Dynamicvoyant.prototype.OnRefresh = function()
    {			
        var back = "fill:rgb(255,0,0)";  //rouge
        this.m_rectElem.setAttribute("style", back);
     
       var This=this;
    
       setTimeout(function() {
          back = "fill:rgb(255,255,255)";  //blanc
          This.m_rectElem.setAttribute("style", back);
       }, 1000);
    }
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  19. #19
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    296
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 296
    Points : 103
    Points
    103
    Par défaut
    ok un grand merci now il clignote

    MAIS, car il y en a toujour un (lol), comment je regle la frequence de clignotement car le temps dans setTimerout permet juste de definir le temp du debut de clignotement

    merci d'avance

  20. #20
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par cortex59 Voir le message
    MAIS, car il y en a toujour un (lol), comment je regle la frequence de clignotement car le temps dans setTimerout permet juste de definir le temp du debut de clignotement
    Ca dépend où est déterminée la suite du clignotement ...
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

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

Discussions similaires

  1. utilisation d'une variable globale
    Par ZZ dans le forum ASP
    Réponses: 3
    Dernier message: 03/12/2003, 19h11
  2. Realiser une tempo sur microcontrolleur
    Par Goetz dans le forum C
    Réponses: 20
    Dernier message: 03/11/2003, 23h46
  3. Utilisation d'une variable sur plusieurs unités
    Par Yamaneko dans le forum Langage
    Réponses: 2
    Dernier message: 05/06/2003, 11h23
  4. Utilisation d'une dll écrite en delphi 5 dans VB6
    Par Jean-Louis dans le forum Langage
    Réponses: 4
    Dernier message: 05/08/2002, 09h19
  5. Réponses: 4
    Dernier message: 05/06/2002, 14h35

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