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 :

Temporisation en javascript avec Settimeout function switch case


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    4
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 4
    Par d�faut Temporisation en javascript avec Settimeout function switch case
    Bonjour,
    Je suis d�butant et soufaite afficher diff�rents textes ou images dans un popup toutes les x secondes environ
    Une boucle (For ou Do While) est simple (� d�faut d'�tre esth�tique) et me conviendrait, mais perturbe le navigateur (MsgBox : un script ralentit l'affichage de votre page. Voulez-vous l'arreter).
    J'ai trouv� sur developpez.net un bon mod�le mais qui plante chez moi (script pas complet, appel de fonction ?)
    http://www.developpez.net/forums/d37...on-javascript/

    Pour l'instant, on oublie le popup en target, je cherche simplement � afficher du texte dans la page principale.
    La temporisation est fixe pour plus de simplicit�.

    Mais je n'arrive pas � l'adpater chez moi: ca plante.
    Ou est le probl�me. J'ai essay� un peu tout dans le time out : avec function, avec guillemets simple, guillemet double, ... sans succ�s.
    Pouvez-vous me dire ce qui fait planter mon code.

    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    <HTML>
    <!-- saved from url=(0023)http://www.contoso.com/ -->
    <head>
    <SCRIPT language="Javascript" type="text/javascript">
     
    function ouvrir(url,temps)
    {
    window.open(url, "site", "toolbar=0,location=0,directories=0,status=0, scrollbars=0,resizable=0,menubar=0,top=0,left=0,width=1024,height=768);
    }
     
    function fonctionAEtape(etape)
    {
        switch(etape)
        {
           case 1 :
               // On fait les actions de l'etape 1
               // Et on fait une pause
              document.write("bla bla 1");
    	setTimeout(fonctionAEtape(2),2000);
              break;
           case 2 :
               // On fait les actions de l'etape 2
               // Et on fait une pause
             document.write("bla bla 2");
              setTimeout(fonctionAEtape(3),3000);
              break;
           case 3 :
               // On fait les actions de l'etape 3
               // Et on fait une pause
             document.write("bla bla 3");
              setTimeout(fonctionAEtape(4),2000);
              break;
           case 4 :
               // On fait les actions de l'etape 4
               // Et on c'est fini
             document.write("bla bla 4");
              break;
        }
    }
    </SCRIPT>
    </head>
    <body onload="fonctionAEtape(1)">
    page HTML principale ... bla bla bla bla bla
    </body>
    </HTML>

    Je gal�re un max, j'ai du perdre 5 heures depuis hier soir en vain.

    Merci pour votre aide.

  2. #2
    R�dacteur
    Avatar de Macmillenium
    Homme Profil pro
    D�veloppeur front-end
    Inscrit en
    Mars 2008
    Messages
    2 333
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 39
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur front-end
    Secteur : High Tech - Produits et services t�l�com et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 2 333
    Par d�faut
    Bonsoir,

    Il manque les quotes sur fonctionAEtape()

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    4
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 4
    Par d�faut
    Citation Envoy� par Macmillenium Voir le message
    Bonsoir,

    Il manque les quotes sur fonctionAEtape()
    Merci du tuyau, mais sur quel fonctionAEtape() ??? Bah oui je d�bute.
    d�j� �a buggue en ligne 41:
    <body onload="fonctionAEtape('1')"> ne fonctionne pas
    <body onload="fonctionAEtape(1)"> ne fonctionne pas �galement

    Ensuite l'appel de la fonction dans le setimeout c'est ??
    setTimeout("fonctionAEtape('2')",2000);
    ou setTimeout('fonctionAEtape(2)',2000);
    ou setTimeout(fonctionAEtape("2"),2000);
    ou setTimeout(fonctionAEtape('2'),2000);
    ou setTimeout(fonctionAEtape(2),2000);

    Franchement QuickBasic en 1986 c'�tait plus simple question syntaxe. Et puis les messages d'erreur du debuggueur sont pas explicites.

  4. #4
    R�dacteur
    Avatar de Macmillenium
    Homme Profil pro
    D�veloppeur front-end
    Inscrit en
    Mars 2008
    Messages
    2 333
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 39
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur front-end
    Secteur : High Tech - Produits et services t�l�com et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 2 333
    Par d�faut
    c'est
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    setTimeout("fonctionAEtape(2)",2000);
    et
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <body onload="fonctionAEtape(1)">

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    4
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 4
    Par d�faut
    Citation Envoy� par Macmillenium Voir le message
    c'est
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    setTimeout("fonctionAEtape(2)",2000);
    et
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <body onload="fonctionAEtape(1)">
    Merci beaucoup.
    Ca fonctionne d�j� mieux car il affiche "bla bla bla 1", fait la tempo de 2 secondes, mais plante ensuite : msgbox qui dit Ligne 0 Erreur : Objet Attendu. La fenetre de d�bogage est vierge.
    Il n'affiche donc ni bla bla 2, ni les suivants.
    J'ai lu quelque part que la fonction Settimeout n'�tait pas bloquant, et donc que la suite des instructions �tait execut�e. Auquel cas, le break est execut�, et on sort de la fonction avant que le settimeout ait fait son appel de fonction ?
    Qu'en pensez-vous ?

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    4
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 4
    Par d�faut
    Pourquoi le premier code fonctionne alors que le deuxi�me code ou j'ai chang� la ligne alert(n); par document.write(n); ne fonctionne pas. Je n'y comprend plus rien.

    Code qui fonctionne (les msgbox et les chiffres d�filent) :
    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
    <HTML>
    <!-- saved from url=(0023)http://www.contoso.com/ -->
    <head>
    <SCRIPT language="Javascript" type="text/javascript">
    function afficher(n)
    {
         alert(n);
         var temps = 1000+Math.floor(n/10);
         setTimeout(function(){ afficher(n+1) }, temps*1000);
    }
    </SCRIPT>
    </head>
    <body onload="afficher(1)">
    page HTML principale ... bla bla bla bla bla
    </body>
    </HTML>
    Code qui ne fonctionne pas (seul le chiffre 1 s'affiche) :
    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
    <HTML>
    <!-- saved from url=(0023)http://www.contoso.com/ -->
    <head>
    <SCRIPT language="Javascript" type="text/javascript">
    function afficher(n)
    {
         document.write(n);
         var temps = 1000+Math.floor(n/10);
         setTimeout(function(){ afficher(n+1) }, temps*1000);
    }
    </SCRIPT>
    </head>
    <body onload="afficher(1)">
    page HTML principale ... bla bla bla bla bla
    </body>
    </HTML>

Discussions similaires

  1. R�ponses: 3
    Dernier message: 30/07/2008, 10h21
  2. Switch case avec expression r�guliere
    Par neptunia dans le forum Langage
    R�ponses: 5
    Dernier message: 14/03/2008, 12h51
  3. Exception avec Switch/Case
    Par Gwaedion dans le forum Langage
    R�ponses: 3
    Dernier message: 06/12/2007, 09h07
  4. [Syst�me] Probleme avec un switch case!
    Par Death83 dans le forum Langage
    R�ponses: 7
    Dernier message: 29/01/2006, 16h28
  5. [Tableaux] Probl�me avec Switch case
    Par philippef dans le forum Langage
    R�ponses: 4
    Dernier message: 07/09/2005, 16h37

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