我需要让函数运行固定的秒数,然后终止。我可以使用 jQuery 或 web workers,但我尝试这样做直接失败了。
感谢帮助,现在可以使用了:
startT = new Date().getTime();
i = 1;
while(true){
now = new Date().getTime();
if( (now - startT) > 100) {
break;
}
i++;
}
alert(i);
最佳答案
您建议的方法不起作用,因为 Javascript(大部分)是单线程的 - 循环以无限循环开始,因此永远不会调用 setTimeout
处理程序,所以 keepGoing
永远不会被设置,所以循环无法完成。
最简单的方法是确定函数完成的绝对时间,并且每隔一段时间(即不是在每次迭代时)检查当前时间是否已经超过该时间点。
选择一些迭代次数,使您可以在耗时的测试效率与您准备让函数拥有的“超时”量之间做出合理的折衷。
关于javascript - 在javascript中固定时间后停止执行功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15228004/