arbre
 
Attente en Javascript

Attente en Javascript

Question d' un internaute
J' ai besoin de lancer une opération après un temps défini, avez-vous une solution? Faire une boucle qui calcule le temps écoulé? Merci d' avance
Bernard

Solution proposée
Une boucle qui calculerait le temps écoulé n' est pas vraiment la solution, car elle bloque pratiquement toutes les fonctions de la page.

Il existe une fonction qui s' occupe de ce type d' action :

setTimeout("commande",temps);
commande est le code à exécuter.
temps indique le temps après lequel la commande sera exécutée.


L' annulation de la commande peut être effectuée par clearTimeout();
Il faut passer en paramètre une variable qui pointe vers le setTimeout().
Dans notre exemple il s' agit de a.

Si vous avez besoin d'éffectuer une opération à intervalle régulier, il faut utiliser :

setInterval("commande",temps);
commande est le code à exécuter.
temps est le temps après lequel la commande sera exécutée.
Vous constaterez qu 'elle obéit aux mêmes règles que setTimeout.

Pour suspendre la commande : clearInterval();
Il faut passer en paramètre une variable qui pointe vers le setInterval().
Dans notre exemple il s' agit de b.

Les exemples

Afficher le message dans 2 secondes
Afficher le message dans 4 secondes
Empecher l'affichage

Afficher le message toutes les 4 secondes

Empecher la répétition

Le code :

<HTML>
<head>
<script>
<!--
function Attendre(Duree)
{
  string="Affiche("+Duree+");";
  a = setTimeout(string,Duree);
}

function Affiche(Duree)
{
  alert(Duree/1000+" seconds se sont écoulées");
}

function Annule()
{
  clearTimeout(a);
	alert("Le message ne viendra pas");
}

function Repete(Duree)
{
	string="alert('Hello');";
	b = setInterval(string,Duree);
}

function Interrompre()
{
  clearTimeout(b);
}
// -->
</script>
</HEAD>
<BODY>
<a href="javascript:void()" onClick="Attendre(2000);">
Afficher le message dans 2 secondes
</a><BR>
<BR>
<a href="javascript:void()" onClick="Attendre(4000);">
Afficher le message dans 4 secondes
</a>
<BR> 
<a href="javascript:void(0)" onClick="Repete(4000)"; >
Afficher le message toutes les 4 secondes
</a>
<br>
<a href="javascript:void(0)" onClick="Interrompre()"; > Empecher la répétition </a> <br>
</BODY> </HTML>

Sources ZIP

Toutes les heures, le serveur contrôle que votre site est en ligne. En cas de problème, un mail vous est envoyé.
Vous avez l'habitude d'oublier les dates importantes? Oubli vous prévient gratuitement par email !

Page modifiée le 21/06/2009 3884 visiteur(s) aujourd'hui
Comment créer son site

Javascript : délai