JS中DOM渲染和宏任务的执行时机问题?

很多网上教程给出的结论都是 DOM渲染优先执行于宏任务
但是我通过如下代码测试,不同浏览器下得出的结果竟然不一样
测试代码:

<div style="width: 100px; height: 100px; background-color: red">123</div>
<script>
console.log(1);
setTimeout(() => {
    alert(2);
}, 0);
Promise.resolve().then(() => {
    alert(3);
});
console.log(4);
</script>

chrome 版本 110.0.5481.178(正式版本)(64 位)执行效果:

FireFox 110.0.1 (64 位)

那到底哪个优先级高呀,不同浏览器为啥效果不一样,望各位大佬指明,谢谢

阅读 1.9k
2 个回答

百度上搜出来CSDN文章,错漏百出,全是培训班的人复制粘贴来的。

要读就读原版文档:Processing model

  • 渲染是最高优先级吗?不是,看整个流程渲染(render update)在第7步。(具体还要看浏览器实现)

image.png
为了证明你说的是错的 我还专门下个火狐浏览器
结果不还是1 4 3 2 吗
这表现是一致的啊
不明白你说的不一致在哪里。。。
---还有,说下,它执行的顺序是先执行微任务,然后宏任务

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏