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