我犯了最愚蠢的 javascript 错误,但我花了一段时间才意识到这一点。
是否有任何程序或工具旨在“暴露”错误的 JS 逻辑,如下所示?
function displayTime() {
var systemTime = new Date();
document.getElementById("example").innerHTML = systemTime;
setInterval(displayTime, 1000);
}
Plz不要通过这个代码判断我...我的大脑在其他地方。 |:
答案 0 :(得分:1)
没有一般规则,使用setInterval
调用的函数不应将间隔设置为自身。你可以有这样的代码:
var lastPeriod = 1000;
var curPeriod = 1000;
var timer = setInterval(displayTime, curPeriod);
function displayTime() {
document.getElementById("example").innerHTML = new Date();
if (curPeriod != lastPeriod) {
clearInterval(timer);
lastPeriod = curPeriod;
timer = setInterval(displayTime, curPeriod);
}
}
然后某个地方可能会有一个更改curPeriod
的事件监听器,下次displayTime
运行时会发现它已更改并更新其周期。