1 回答
TA贡献1880条经验 获得超4个赞
您的浏览器仅在完成运行循环的任务后才会执行渲染步骤while
。因此,只有在while 循环完全完成所有迭代后才会显示结果。相反,您可以setTimeout()
每毫秒对多个单独的任务进行排队1000
,这将更新您的浏览器 UI。每次任务运行时,您的浏览器都可以重新运行渲染步骤以显示所做的更改。
请参阅下面的示例:
var pushups = 0;
var pushupGoal = 5;
function doExercise() {
document.getElementById("pushup1").innerHTML = ++pushups + ' pushups';
if (pushups < pushupGoal) {
setTimeout(doExercise, 1000);
} else {
document.getElementById("pushup1").innerHTML = pushups + ' pushups. You reached your goal!';
}
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<div class="container justify-content-center">
<h1>Pushups</h1>
<h4 id="pushup1">0 pushups</h4>
<button class="btn btn-primary" onclick="doExercise()">Start</button>
</div>
添加回答
举报