Déclenchement à date donnée
En combinant les méthodes de Date et la méthode setTimeout, on peut réaliser un équivalent JavaScript du cron d'Unix, autrement dit, déclencher un évènement à un moment donné.
Il faut cependant que la page contenant le code reste affichée pour réaliser l'évènement.
Le principe consiste :
- Fixer la date de l'évènement, qui sera dans la démo l'affichage d'un message dans la page.
- Puis on retrouve la date actuelle avec l'objet Date et on calcule la différence avec le moment de l'évènement.
- On lance alors setTimeout avec cette différence.
Code pour déclencher un évènement:
function a()
{
var e = document.getElementById("storage");
e.innerHTML += "<p style='font-size:120%'>Le moment est venu!</p>";
}
function term()
{
var now = new Date();
var hours = document.getElementById("hours").value;
var minutes = document.getElementById("minutes").value;
var seconds = document.getElementById("seconds").value;
var term = new Date(now.getFullYear(), now.getMonth(), now.getDate(), hours, minutes, seconds, 0);
setTimeout(a, term - now);
var e = document.getElementById("storage");
var diff = Math.round((term.getTime() - now.getTime()) / 1000);
e.innerHTML += "<p><p>L'opération sera déclenchée dans " + diff + " secondes...</b></p>";
}
Démonstration
Retourner au tutoriel setTimeout et setInterval.
(c) 2010-2011 Xul.fr.