【问题标题】:Always calculate var Javascript总是计算 var Javascript
【发布时间】:2020-08-20 15:44:30
【问题描述】:

我正在尝试在 html 页面上显示一个应该始终重新计算自身的变量。

var actualTimeSec = 0; //evolves while the page is loaded
var xTot = 500;        //fixed
var timeTotSec = 60;   //fixed

while(stop === false){
    var x = (actualTimeSec*xTot)/timeTotSec;
    document.querySelector("#xId").innerHTML = x;
}

在我的 HTML 中,我有一个显示 x 变量的 div。 但是当while循环工作时,我不能点击任何其他按钮。 如何始终计算 x 变量(直到用户关闭页面)但仍然能够点击其他按钮?

【问题讨论】:

  • 您应该使用setInterval() 重复运行代码,而不是while 循环。 JavaScript 是单线程且不可抢占的,因此不能中断循环来更新任何变量。
  • 当然,但是 setInterval() 将是每 10 毫秒或其他时间,因为我希望变量是准确的。你也许是对的,我可能应该使用这个......
  • 你也可以使用requestAnimationFrame - developer.mozilla.org/en-US/docs/Web/API/window/…

标签: javascript html while-loop


【解决方案1】:

正如“Barmar”在 cmets 中所说,我应该将循环的内容放在一个函数中,并使用 setInterval() 方法调用该函数。 (例如,它会每 10 毫秒调用一次函数,而不会破坏页面的其余部分)

【讨论】:

    猜你喜欢
    • 2016-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多