var setTimer;
var isTimeSet = false;
if (!isTimeSet) {
setTimer = $('#hdn_timerTime').val();
isTimeSet = true;
}
initialTimer();
function initialTimer() {
var CustomMinutes = 60 * parseInt(setTimer),
display = $('#time');
startTimer(CustomMinutes, display);
}
function startTimer(duration, display) {
var timer = duration, minutes, seconds;
setInterval(function () {
minutes = parseInt(timer / 60, 10)
seconds = parseInt(timer % 60, 10);
minutes = minutes < 10 ? "0" + minutes : minutes;
seconds = seconds < 10 ? "0" + seconds : seconds;
display.text(minutes + ":" + seconds);
if (--timer < 0) {
timer = duration;
$('#outputmeters').val(JSON.stringify(listItem));
// _hardMeter.UpdateMeterData();
_hardMeter.TempUpdateMeterDataConfirmation();
}
}, 1000);
}
我正在使用的这段代码,但这是第一次它工作正常,而不是之后它的时间开始减少并很快触发功能。我不知道这是怎么回事。
请帮助我解决这个问题,如果您有更好的解决方案。你能分享一下吗?
您可以使用
setInterval
以设定的时间间隔重复调用同一函数,直到卸载页面或调用clearInterval
:
var timedFunction = function() {
... // Do something
}
setInterval(timedFunction, 60 * 1000);
如果您的定时函数接受每次都会更改的参数,请使用 setTimeout
并在函数体内调用它
var timedFunctionWithArguments = function(iterations) {
console.debug(iterations); // Do something
setTimeout(timedFunctionWithArguments, 60 * 1000, iterations++);
}
timedFunctionWithArguments(0);