【问题标题】:Javascript: innerHTML doesn't always updateJavascript:innerHTML 并不总是更新
【发布时间】:2013-04-23 10:15:06
【问题描述】:

我得到了这个函数,它每秒被 setInterval 触发一次

function updatetimer() {
    if (timesec==0) {
        if (timemin==0) clearInterval(interval);
        else {
            timemin--;
            timesec=59;
        }
    }
    else timesec--;

    document.getElementById('timeleft').innerHTML=timemin+':'+timesec;
}

您希望它每秒用新时间更新名为 timeleft 的 innerHTML 元素。但由于某种原因,它没有,或者有时它没有。它可能与所有其他编码有关,因为有很多 setTimeout 和 DOM 的东西在发生。

如果这是假定的行为,请您指出另一种方法。

提前致谢,Locercus

【问题讨论】:

    标签: javascript dom innerhtml timing watch


    【解决方案1】:

    使用setTimeoutsetInterval 进行事件调度是尽力而为 模型。如果您将间隔安排为每 1000 毫秒运行一次,如果有其他事件正在处理,它可能会运行得更晚。

    这就是为什么使用每秒触发的setInterval 来实现时钟 通常是个坏主意。你的时钟总是很慢。

    【讨论】:

    • 我同意如果它是用于某种软件,但我在这里制作了一个小游戏,所以这并不重要。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-31
    • 2013-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多