【发布时间】:2016-08-29 17:10:31
【问题描述】:
我写了一个小练习程序,它显示了一个提示数字的时间表。
我希望在询问用户哪个数字后显示表格。如果用户输入的数字不是 -1,我想要求另一个数字。
我正在寻找的顺序是提示用户,显示表格,提示用户显示表格......不幸的是,我的程序工作的顺序是提示用户,提示用户,提示用户。 .. 就在显示每个输入的表格之后。
显然代码不是这样写的。
// get number to show time table for
var aNumber = prompt("Enter the number for time table or -1 to stop the program", "");
while(aNumber != -1) {
timeTableFrom(aNumber); // show time table for the first number
aNumber = prompt("Enter the number for time table or -1 to stop the program", ""); // ask for another number. HERE IS THE PROBLEM - THIS LINE RUNS BEFORE THE PREVIOUS ONE!
}
document.write("stopped");
function timeTableFrom(number)
{
for (var i = 0; i <= 10; i++)
{
document.write(number + " * " + i + " = " + number*i + "<br />");
}
}
【问题讨论】:
-
while循环阻塞了浏览器唯一的线程,在 JS 执行结束之前没有时间渲染结果。你必须使用timer 来实现你想要的。 (并用适当的 DOM 操作函数替换document.write。) -
欢迎来到 Stack Overflow!您可以通过格式化代码来帮助我们帮助您,这样我们就不会滚动它。
-
@zhon 感谢您的热烈欢迎。下次我会更好地格式化它。你们也会提供解决方案吗?
标签: javascript function events prompt