【问题标题】: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

标签: javascript


【解决方案1】:

Javascript 被解释,因此它逐行运行,因此 document.write 首先运行,alert 在其后运行。此外,在单线程 javascript 模型中,进一步执行将停止,直到收到弹出窗口的响应。

您看不到结果的原因是HTML 的渲染由于弹出警报而停止,因此所有弹出窗口将在您的页面大部分渲染之前看到。 This link will help you understand better.

【讨论】:

    【解决方案2】:

    现代浏览器的设置使得一旦遇到 JavaScript 代码,它们就会暂停 HTML 的呈现,并在恢复 HTML 呈现之前运行整个 JavaScript。

    【讨论】:

      猜你喜欢
      • 2013-09-18
      • 2020-11-21
      • 1970-01-01
      • 2020-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-24
      • 2014-10-16
      相关资源
      最近更新 更多