尝试以这种方式睡眠代码流(而不是setTimeOut)进行实验
var div = document.getElementById("algo-code");
div.innerHTML += "<p>Extra stuff1</p>";
// works like sleep in php
for (var i = 0; i < 1000000; i++) {
}
div.innerHTML += "<p>Extra stuff2</p>";
它同时为div添加了两个段落,但是当我把console.log而不是div.innerHTML它同步时,在打印第二个控制台之前会睡一段时间。
实际上发生了什么?
答案 0 :(得分:1)
我最好的猜测为什么它似乎工作&#34;更好&#34;或者&#34;如你所料&#34;在控制台中,优化器在控制台js上没有那么激进,但是认识到你的for()
块什么也不做,并且在不在控制台中时忽略它们。或者,环可能太紧,以至于不会发生绘画。
无论如何,正如建议的那样,你真的想看看setTimeout()
:
setTimeout(function(){
var div = document.getElementById("algo-code");
div.innerHTML += "<p>Extra stuff1</p>";
setTimeout(function(){ div.innerHTML += "<p>Extra stuff2</p>";}, 1000);
}, 1000);
&#13;
<div id="algo-code">......</div>
&#13;