由于Javascript是单线程的,因此许多同步处理将使事件队列挂起并阻止其他代码执行。在您的情况下,是因为for循环会在浏览器执行期间锁定浏览器。
您可以尝试将所有迭代放入事件队列中。
for (var i = 0 ; i < childNodes.length ; i = i + 1) { (function(i) { setTimeout(function(i) { // pre-here }, 0) })(i)}这应该使处理间隔开,而不是迫使浏览器立即完成所有处理。自执行功能在那里创建一个闭包以保持循环计数器i的值。



