Я знаю, что это некропост, но я думаю, что все еще люди ищут это.
Это то, что я использую:
3 переменные:
t
за миллисекунды с .. в Date Object для следующей цели
timerSys
для фактического интервала
seconds
установлен порог для миллисекунд
затем у меня есть function timer
с 1 переменной, функция проверяет, является ли переменная истинно , если так, он проверяет, работает ли таймер, и если это так, чем заполняет глобальные переменные , если нет верно , ложно , очищает интервал и устанавливает global var timerSys
в ложь ;
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);
}
Пример I
Теперь вы можете добавить строку в функцию 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
}
И выполнить:
timer(5000);
Каждые 5 секунд в консоли:
//output:: Next execution: Sun May 08 2016 11:01:05 GMT+0200 (Romance (zomertijd))
Пример II
function sys() {
t = new Date().setMilliseconds(seconds);
console.log("Next execution: " + seconds/1000 + " seconds");
}
$(function() {
timer(5000);
});
Каждые 5 секунд в консоли:
//output:: Next execution: 5 seconds
Пример 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>
Обратите внимание, что таким образом вы можете опуститься ниже 0