Je sais que c'est un necroposting mais je pense que les gens recherchent cela.
C'est ce que j'utilise: 3 variables:
t
millisecondes depuis ..Date d'objet pour la prochaine cible
timerSys
pour l'intervalle réel
seconds
seuil de millisecondes a été fixé
prochaine j'ai function timer
avec 1 variable de la fonction vérifie si la variable est vraiment, le cas échéant il vérifie si la minuterie est déjà en cours d'exécution et si c'est le cas que remplit vars globales, sinon vraiment, faussement, efface l'intervalle et définir global var timerSys
à false;
var t, timerSys, seconds;
function timer(s) {
if (s && typeof s === "number") {
if (typeof timerSys === "boolean" || typeof timerSys === "undefined") {
timerSys = setInterval(function() {
sys();
}, s);
t = new Date().setMilliseconds(s);
seconds = s;
}
} else {
clearInterval(timerSys);
timerSys = false;
}
return ((!timerSys) ? "0" : t)
}
function sys() {
t = new Date().setMilliseconds(seconds);
}
Exemple I
Maintenant, vous pouvez ajouter une ligne à fonction sys:
function sys() {
t = new Date().setMilliseconds(seconds);
console.log("Next execution: " + new Date(t));
//this is also the place where you put functions & code needed to happen when interval is triggerd
}
et exécuter:
timer(5000);
Toutes les 5 secondes dans la console:
//output:: Next execution: Sun May 08 2016 11:01:05 GMT+0200 (Romance (zomertijd))
Exemple II
function sys() {
t = new Date().setMilliseconds(seconds);
console.log("Next execution: " + seconds/1000 + " seconds");
}
$(function() {
timer(5000);
});
Toutes les 5 secondes dans la console:
//output:: Next execution: 5 seconds
Exemple III
var t, timerSys, seconds;
function timer(s) {
if (s && typeof s === "number") {
if (typeof timerSys === "boolean" || typeof timerSys === "undefined") {
timerSys = setInterval(function() {
sys();
}, s);
t = new Date().setMilliseconds(s);
seconds = s;
}
} else {
clearInterval(timerSys);
timerSys = false;
}
return ((!timerSys) ? "0" : t)
}
function sys() {
t = new Date().setMilliseconds(seconds);
console.log("Next execution: " + seconds/1000 + " seconds");
}
$(function() {
timer(5000);
$("button").on("click", function() {
$("span").text(t - new Date());
})
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button>Freebeer</button>
<span></span>
Notez cette façon, vous pouvez aller au-dessous 0
-1 patrick, ce n'est pas un principe mondain. parfois, ils ont des ressources utiles. – JoeRocc
OT: le problème est de distinguer ces heures des autres :) Sans connaître le sujet, bien sûr – superjos
"Je annule généralement la variable timer dans le délai d'attente" –