JavaScript 为什么页面会先显示alert()框,而不是先显示页面元素?

发布于 2022-09-11 15:20:42 字数 365 浏览 15 评论 0

显示顺序
1.显示提示框(此时页面一片空白)
2.点确定后正常显示HelloWorld

<body>
    <script>
        document.write("<h1>HelloWorld</h1>");
        document.write("<h1>HelloWorld</h1>");
        alert("你好");
    </script>
</body>

为什么页面会先显示alert()框,而不是先显示HelloWorld,我的代码明明是HelloWorld写在上面?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

穿越时光隧道 2022-09-18 15:20:42

alert会阻塞进程

薄凉少年不暖心 2022-09-18 15:20:42

渲染页面是在一次事件循环的末尾执行的,执行跟渲染是分开的,所以先有alert

眉目亦如画i 2022-09-18 15:20:42

alert会阻塞线程 包括页面渲染的GUI线程
针对你这个问题,我在描述具体点 其实你的dom已经渲染 只是很短暂 然后进程被阻塞了

栗子:比如你有一天去饭店, 告诉老板要吃火锅了,他再给你上火锅的路上, 你出去接了个电话 他已经把火锅端上来了(但是你没看到,你走进去才会看到) (阻塞了)

    document.write("<h1>HelloWorld</h1>");
    document.write("<h1>HelloWorld</h1>");
    setTimeout(function(){alert("你好")},1000) //定时线程走,就可以看到效果
旧瑾黎汐 2022-09-18 15:20:42

你可以把前两句理解为异步,而alert是同步的阻塞线程

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文