Le but de cette source est de pouvoir faire l'equivalent d'un "sleep" dans une fonction javascript.

Pour cela, on divise le traitement en plusieurs etapes, avec une pause entre chaque etape.

Pour effectuer la pause, on utilise la fonction setTimeout qui va lancer l'etape suivante à la fin de la pause :

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
function fonctionAEtape(etape)
{
    switch(etape)
    {
       case 1 :
           // On fait les actions de l'etape 1
           // Et on fait une pause
          setTimeout("fonctionAEtape(2)",1000);
          break;
       case 2 :
           // On fait les actions de l'etape 2
           // Et on fait une pause
          setTimeout("fonctionAEtape(3)",1000);
          break;
       case 3 :
           // On fait les actions de l'etape 3
           // Et on fait une pause
          setTimeout("fonctionAEtape(4)",1000);
          break;
       case 4 :
           // On fait les actions de l'etape 4
           // Et on c'est fini
          break;
    }
}
Il suffit de lancer l'étape 1 de la fonction : fonctionAEtape(1) et toutes les etapes s'exectueront à la suite, avec une pause entre chaque.

Il est evidemment possible de regler la durée des pauses (fonction setTimeout) et de passer d'une etape 2 à une etape 4, par exemple :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
       case 2 :
           // On fait les actions de l'etape 2
           // Si le resulat d'un test est positif :
           // on passe à l'etape 3 après une pause de 2 secondes
           // sinon on retourne à l'etape 1 après une pause d'une seconde
           if (monTest == true)
              setTimeout("fonctionAEtape(3)",2000);
           else
              setTimeout("fonctionAEtape(1)",1000);
          break;