倒数并在发生变化时更改变量

时间:2019-07-16 14:39:08

标签: javascript countdown

我正在运行一个for循环,每次迭代之间的间隔为1秒:

<html>
<body>
<script>

var text = "";
var i;

// Wait function
function wait(ms){
   var start = new Date().getTime();
   var end = start;
   while(end < start + ms) {
     end = new Date().getTime();
  }
}

for (i = 0; i < 5; i++) {
  text += "The number is " + i + "<br>";
  wait(100)
}

</script>

<script>document.write(text)</script>

</body>

当前,当我在Web浏览器中打开文件时,浏览器窗口正在加载,直到for循环完成,然后显示结果(五行输出)。有没有一种方法可以在“发生时”显示输出。我的意思是,我打开页面,然后每秒钟打印一行新行。 谢谢!

3 个答案:

答案 0 :(得分:1)

您应该了解Java语言中的超时和间隔概念。

这是可以完成工作的代码。检查一下。

def getNestedItem(dictionary, path):
    if len(path) > 1:
        return getNestedItem(dictionary[path[0]], path[1:])
    else:
        return dictionary[path[0]]

def setNestedItem(dictionary, path, value):
    if len(path) > 1:
        setNestedItem(dictionary[path[0]], path[1:], value)
    else:
        dictionary[path[0]] = value

答案 1 :(得分:1)

您要手动实现的目标,可以通过WindowOrWorkerGlobalScope.setTimeout()实现相同的目标:

  

WindowOrWorkerGlobalScope mixin的setTimeout()方法(和Window.setTimeout()的后继方法)设置一个计时器,该计时器在计时器到期时将执行功能或指定的代码段。

for (let i = 0; i < 5; i++) {
  setTimeout(() => document.write("The number is " + i + "<br>"), 1000 * i); // multiply the delay with i in each iteration
}

答案 2 :(得分:1)

您可以使用setInterval(fn, timeout) src代替您自己的“等待”功能。

var i = 0;
var interval = setInterval(() => {
  i = i + 1;
  if(i === 5) {
    clearInterval(interval);
  }
  document.write("Your text " + i);
}, 1000);

相关问题