当更新用户界面的代码行在使系统忙碌一段时间的代码块之前执行时,UI 不会更新。 请看下面的代码:
<html>
<body>
<div id="acc">
<input type="text" value="start" id="id1"/>
<input type="text" value="e0" id="id2"/>
</div>
<script>
myFunction();
function myFunction() {
document.getElementById("id1").value="1";
var j=true;
for(var i=0;j==true;i++){
document.getElementById("id2").value="e"+i;
if(i==999999)
j=false;
}
document.getElementById("id1").value="2";
}
</script>
</body>
</html>
值 1 永远不会分配给输入文本 (id1)。 就像 JavaScript 代码没有同步执行一样。
有人可以帮忙吗?
最佳答案
您需要使代码异步,如下所示;
<html>
<body>
<div id="acc">
<input type="text" value="start" id="id1"/>
<input type="text" value="e0" id="id2"/>
</div>
<script>
myFunction();
function myFunction() {
document.getElementById("id1").value="1";
setTimeout(function(){
for(var i=0;i<=999999;i++){
document.getElementById("id2").value="e"+i;
}
document.getElementById("id1").value="2";
},5);
}
</script>
</body>
</html>
关于JavaScript。代码未执行。用户界面未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26929669/