我希望我不会让自己出丑,但我试图理解在这两行代码中发生了什么:
document.body.innerHTML = 'something';
alert('something else');
我观察到的是,在 HTML 更新之前会显示警报(或者可能已经更新了,但是页面没有被刷新/重新绘制/随便什么)
看看这个 Codepen看看我的意思。
请注意,即使把 alert
放在 setTimeout(..., 0)
中也没有帮助。看起来 innerHTML
实际更新页面需要更多的事件循环。
编辑:
我忘了说我正在使用 Chrome 浏览器,也没有检查其他浏览器。看起来只能在 Chrome 中看到。尽管如此,我仍然对为什么会发生这种情况感兴趣。