我有一个相当复杂的页面,其中包含许多 ajax 调用和随后的 dom 操作。在一个特定的调用中,它设置一个带有时间限制的间隔(本质上是一个计时器)。我在任何地方,甚至在函数中都设置了clearInterval()
,但在非常特殊的用例中(它很复杂,我无法确定重现缺陷的确切原因和步骤)。
$(function() {
window.timer_interval;
// ...
})
function timer()
{
var current = 0;
time_limit = 60;
window.timer_interval = setInterval(function() {
minute = ( "0" + Math.round(Math.floor((time_limit - current)/60))).slice(-2);
seconds = ("0" + ((time_limit - current)%60)).slice(-2);
$('#timer').html(minute + ":" + seconds);
if (current >= time_limit) {
clearInterval(window.timer_interval);
window.timer_interval = false;
}
current = current + 1;
}, 1000);
}
我已经使用 firbug 来检测 的值window.timer_interval
,它false
甚至满足条件。一件事可能是几个图像传输失败(这是可能的应用程序行为,代码写入优雅降级)。我正在 Mozilla 中开发。