javascript - 模块是否会阻止使用 DOMContentLoaded 监听器的需要?

标签 javascript script-tag deferred-loading

document.addEventListener('DOMContentLoaded', () => { 

});
我读到这个事件监听器确保,对于常规脚本,JS 不会引用尚未加载的节点。内容在 DOMContentLoaded 被触发后执行)。
我也有read一个模块在 DOMContentLoaded 之前执行被触发(由于它内置的 defer 属性)。
我使用的模块似乎不需要 DOMContentLoaded听众。我可以确认DOMContentLoaded他们不需要监听器来正确访问节点吗?
另外,我想不出如何测试这个,所以我在这里问。如果你知道我怎么做,请分享!

最佳答案

我认为这篇文章应该为您清除一些东西,它有很棒的图片https://flaviocopes.com/javascript-async-defer/#the-position-matters
defer存在,它指定脚本在页面完成解析后执行,因此您可以保证脚本可以访问没有 DOMContentLoaded 的节点

关于javascript - 模块是否会阻止使用 DOMContentLoaded 监听器的需要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63420821/

相关文章:

javascript - 将脚本标记作为字符串加载并将其附加到 html header

jquery - 了解 jQuery Deferred.pipe()

javascript - 延迟加载和解析 PrimeFaces JavaScript 文件

javascript - 使用数组表示法了解何时将属性设置为对象

javascript - 如何使用动态生成的行更改表(添加行跨度/列跨度)?

javascript - 在 JavaScript 中使用多个 return 语句

javascript - 如何从javascript引用延迟加载的脚本标签json文件内容?

xml - 关于 xml <script> 元素的未转义字符的错误 IntelliJ 警告

javascript - 社交插件(Fb、Twitter、Google)为我的网站增加了 3 秒的加载时间。推迟他们?

javascript - 在方法 GET 上从没有 "/"的日期选择器发送日期参数