如何在JS中的某个时间范围内做一个循环

时间:2014-10-26 03:20:04

标签: javascript function time

我对JavaScript很陌生,所以在回答我的问题时请记住这一点。

我试图在特定时间段内向用户询问问题。使用window.prompt()方法询问问题。我在do while函数中有一个askquestions()循环,你可以看到:

var randomNo1;
var randomNo2;
var time;

do {
  randomNo1 = Math.random() * 9;
  randomNo1 = Math.round(randomNo1);
  randomNo2 = Math.random() * 9;
  randomNo2 = Math.round(randomNo2);
  window.prompt("What is " + randomNo1 + " + " + randomNo2 + "?")
} while (time == 0);

如何在30秒后将其设为time = 1? 在此先感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

您可以使用:

document.setTimeout("str js code/func name call",millisec);
document.setTimeout("time=1;",30000);

用延迟执行一次js代码

对于您的规范,可能需要以下方法用于其他计时目的:

document.setInterval("js code /func name call",millisec);

以间隔执行

此外,强烈建议不要在js代码中“等待”以提供一些计时服务,这可能会导致浏览器将此线程作为无响应的线程

答案 1 :(得分:0)

你可以使用

获得自1970年1月1日以来的毫秒数
date = new Date();
mil = date.getTime();

您可以在代码的开头进行比较,然后在循环中获得更新的代码。如果两者之间的时间大于某个毫秒数,则可以退出循环(while(curDate.getTime()-mil<30000)将是30秒)