“infinite"设置interval函数“定时”
"infinite" setinterval function "timing out"
有一个有点奇怪的问题,我不能弄清楚。我设置了一个javascript计时器,它所做的就是每秒钟重复一个间隔,检查两个日期之间的差异并显示结果。一切似乎都很好,然而,当让浏览器打开几分钟(不碰它…真的走开一段时间),它似乎"暂停"并停止运作。没有控制台错误消息或任何东西,代码只是停止执行。我想知道有没有人知道是什么引起的?是我的代码的问题,还是这是一个内置的浏览器功能,以停止js函数,如果有一个页面上的用户在一段时间内没有输入?
edit抱歉,应该提到这个计时器被设置为运行大约40天,所以它永远不会真正满足用户会话中的clearinterval语句。添加到函数中的未来日期变量是来自PHP的动态unix时间戳,用于未来大约40天的日期。当前设置为1444761301.88
function MModeTimer(futureDate) {
zIntervalActive = true;
var currentTime = new Date().getTime() / 1000;
var timeRemaining = futureDate - currentTime;
var minute = 60;
var hour = 60 * 60;
var day = 60 * 60 * 24;
var zDays = Math.floor(timeRemaining / day);
var zHours = Math.floor((timeRemaining - zDays * day) / hour);
var zMinutes = Math.floor((timeRemaining - zDays * day - zHours * hour) / minute);
var zSeconds = Math.floor((timeRemaining - zDays * day - zHours * hour - zMinutes * minute));
if (zSeconds <= 0 && zMinutes <= 0) {
console.log("timer in negative");
// timer at zero
clearInterval(zTimeInterval);
} else {
if (futureDate > currentTime) {
console.log("timer interval running");
// changes html as part of function
}
}
}
zTimeInterval = setInterval(function() {
MModeTimer(zNewTime)
}, 1000);
这一行:
clearInterval(zTimeInterval);
清除间隔,当条件:
if (zSeconds <= 0 && zMinutes <= 0) {
是满足。
根据你写在里面的日志,这是错误的。检查zSeconds和zminutes是否小于或等于0。因此,当两者都为0时,间隔将被清除。
<标题>编辑根据你的编辑和解释,我可以建议添加一个控制台日志,它不是在任何条件下吗?:
function MModeTimer(futureDate) {
console.log('running');
//... rest of your code
这样您可以确保如果间隔正在运行,也许您的条件在一段时间后不为TRUE,并且您不会看到任何日志,但间隔仍在运行
标题>相关文章:
- javascript定时函数-预期的标识符
- 用于异步函数中的循环和定时问题
- 从函数(咖啡脚本)内以定时间隔触发函数
- 我在输入字段上触发绑定时将函数设置为未定义
- 如何通过单击取消javascript函数启动的定时重定向
- 为什么在使用返回的RequireJS函数中声明的Click绑定时未定义
- web服务器php上的定时函数调用?javascript
- Javascript定时器函数
- Javascript定时器切换函数
- 使用动态参数禁用setInterval函数中的定时器
- 当eval带有绑定时,Nashorn找不到函数
- 为什么clearInterval()函数不停止javascript定时器
- 防止函数在主干中绑定时被调用两次
- 如果IE fork执行定时函数
- “infinite"设置interval函数“定时”
- javascript setTimeout定时器步长函数
- 使用`?`在JavaScript定时器函数返回中
- Javascript定时了我的函数
- setInterval 函数不在定时间隔上运行,只是连续重复,没有时间
- 如何用定时器协调2个函数->javascript