Closed. This question needs details or clarity。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
                        
                        在11个月前关闭。
                                                                                            
                
        
有没有一种方法可以强制浏览器显示每个迭代的真实过程,如以下代码所示:



document.getElementById("dd").innerHTML = "new HTML"
for (let i = 0; i < 334339; i++) {
  document.getElementById("dd").innerHTML = "new HTML" + i;
  document.getElementById("dd").width=40;
}

<div id="dd">
  xxxxxxx
</div>
<div id="ss">
  <input type="button"></input>
</div>

最佳答案

您可以使用setInterval来实现。 setInterval的第一个参数是要调用的函数(运行每个循环的代码),第二个参数是希望调用该函数的频率(以毫秒为单位)

请参见下面的示例:



document.getElementById("dd").innerHTML = "new HTML"

let i = 0;
let loop = setInterval(function() {
  if(i >= 15) { // change to something smaller to see it stop
    clearInterval(loop);
  }
  document.getElementById("dd").innerHTML = "new HTML" + i;
  document.getElementById("dd").width=40;

  i++;
}, 100) // call the setInterval function every 100m/s

<div id="dd"></div>





如果最终希望停止循环,则可以使用clearInterval()阻止回调连续运行

10-06 09:28