Ich weiß, dass dies eine Nekropostierung ist, aber ich denke, dass die Leute immer noch danach suchen.
Dies ist, was ich benutze: 3 Variablen:
t
für Millisekunden seit .. im Datumsobjekt für das nächste Ziel
timerSys
für das tatsächliche Intervall
seconds
Schwellenwert für Millisekunden wurde festgelegt
nächste i a haben function timer
die Funktion überprüft , mit 1 Variable , wenn Variable ist wirklich , wenn ja er prüfen , ob Timer bereits läuft , und wenn dies der Fall ist, als füllt die globalen Variablen , wenn nicht wirklich , falsch , löscht das Intervall und Set global var timerSys
zu falsch ;
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);
}
Beispiel I.
Jetzt können Sie der sys-Funktion eine Zeile hinzufügen :
function sys() {
t = new Date().setMilliseconds(seconds);
console.log("Next execution: " + new Date(t));
}
Und ausführen:
timer(5000);
Alle 5 Sekunden in der Konsole:
Beispiel II
function sys() {
t = new Date().setMilliseconds(seconds);
console.log("Next execution: " + seconds/1000 + " seconds");
}
$(function() {
timer(5000);
});
Alle 5 Sekunden in der Konsole:
Beispiel 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>
Beachten Sie, dass Sie auf diese Weise unter 0 gehen können