文档头中的脚本是否总是在DOMContentLoaded触发之前执行?

克里斯·马丁

在以下文档中,

<!doctype html>
<html>
  <head>
    <script language="javascript" src="example.js"></script>
  </head>
  <body>
  </body>
</html>

哪里example.js是:

document.addEventListener('DOMContentLoaded', function () {
    console.log('hello');
});

是否保证执行日志语句?

一定的表现

是的,请参见MDN::脚本元素

在浏览器继续解析页面之前,将立即获取并执行没有异步或延迟属性的脚本以及内联脚本。

直到结束,文档都不会被完全解析;当遇到script标签时,它将停止解析,并等待脚本下载(如有必要)并运行,然后再继续。

但是,这非常糟糕-您不想延迟页面的解析和渲染。最好给您的script标签一个defer(或async)属性-这样,它将在解析完成后自动运行而不会阻塞,并且不需要您将整个脚本包装在DOMContentLoaded侦听器中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

执行之前检查python版本是否与脚本兼容

是否总是在 startActivity 之前安排完成?

“最终”是否总是在Python中执行?

是否在ASM库中总是在visitCode()之前调用visitAnnotation()?

NSOperationQueue是否总是在取消分配之前完成其队列?

dataURL 图像是否总是在 JavaScript 模块之前加载?

新任务是否总是在ThreadPool线程上执行?

Body onload脚本是在PHP之前执行的PHP脚本

使用C#执行Powershell脚本是否安全?

使用shebang行执行脚本是否更好?

如何检查Linux Shell脚本是否由cronjob执行?

让cron检查bash脚本是否正在执行

检测脚本是否从Racket的命令行执行?

检查脚本是否完成执行而不是退出

检查脚本是否以root用户身份执行?

Lua中检测脚本是否被导入或执行

如何确定sql脚本是否并行执行?

AngularJS指令-控制器是否总是在链接功能运行之前被实例化?

二进制搜索丢失的元素是否总是在元素存在之前就返回该元素?

Node.js:节点是否总是在退出之前等待setTimeout()完成?

是否调用.click(); 总是在返回之前调用所有事件处理程序?

L2 行填充是否总是在查找时触发?

如何检测DOMContentLoaded是否被触发

总是在0时以姿势触发阻止

发生异常时,@ After注释是否总是在Selenium中执行?

可执行文件是否总是在MacOS上打开终端窗口?

函数总是在回声期间首先执行?

Verilog 总是在启动期间阻止执行

凝视总是在PointExit之后执行