为啥在 document.write 之前出现 alert? [复制]
Posted
技术标签:
【中文标题】为啥在 document.write 之前出现 alert? [复制]【英文标题】:Why does alert show up before document.write? [duplicate]为什么在 document.write 之前出现 alert? [复制] 【发布时间】:2018-04-25 08:08:12 【问题描述】:当下面的代码按照编写的顺序执行时,为什么alert仍然在第2行呢?谢谢!
document.write ("Hello World");
alert("You wrote to the document!");
【问题讨论】:
评论已删除 停止这样的评论 文档的构建比文件的“解析”花费的时间更长,这就是为什么在构建页面之前执行警报的原因。您需要等到文件准备好。见javascript-that-executes-after-page-load 【参考方案1】:Javascript 被解释,因此它逐行运行,因此 document.write
首先运行,alert
在其后运行。此外,在单线程 javascript 模型中,进一步执行将停止,直到收到弹出窗口的响应。
您看不到结果的原因是html
的渲染由于弹出警报而停止,因此所有弹出窗口将在您的页面大部分渲染之前看到。
This link will help you understand better.
【讨论】:
【参考方案2】:现代浏览器的设置使得一旦遇到 JavaScript 代码,它们就会暂停 HTML 的呈现,并在恢复 HTML 呈现之前运行整个 JavaScript。
【讨论】:
以上是关于为啥在 document.write 之前出现 alert? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
为啥 script 标签的 document.write 会有时间差?为啥脚本标签执行延迟?
如果部分写入参与超时块,为啥由 document.write 创建的文档呈现方式不同?