javascript - 在 Vanilla JS 应用程序中是否仍然需要 $document.ready() 的现代等价物?

标签 javascript jquery frontend web-frontend

<分区>

当我几年前学习 JavaScript 时,jQuery 仍然被认为是良好的标准实践,并且建议从 $document.ready() 事件处理程序调用主要应用程序代码,所以以确保 DOM 可以安全使用。

自从我上次从事 JavaScript 工作以来,快进了几年,现在的共识似乎是避免使用 jQuery。此外,由于脚本通常在 HTML 文档的最后加载,因此似乎不再需要 $document.ready()

有问题$(document).ready equivalent without jQuery我看到了这段代码的几种现代替代方案。但是,我仍然不清楚包括其中任何一项是否被视为标准做法或一般建议。

所以我的问题是关于当前的做法:我是否应该始终包含此类代码作为 Vanilla JS 应用程序的入口点,或者相反,现在开始加载没有任何包装器的 JS 应用程序是否被认为是安全的?

最佳答案

一个等价物是 DOMContentLoaded 事件

The DOMContentLoaded event fires when the initial HTML document has been completely loaded and parsed, without waiting for stylesheets, images, and subframes to finish loading.

来源:https://developer.mozilla.org/en-US/docs/Web/API/Window/DOMContentLoaded_event

window.addEventListener('DOMContentLoaded', (event) => {
    console.log('DOM fully loaded and parsed');
});

为了解决您问题的最后一部分,我会说“是!” ^^

您可以在此“主函数”范围之外定义您的自定义函数,但在对 DOM 执行任何操作之前等待事件完成。

关于javascript - 在 Vanilla JS 应用程序中是否仍然需要 $document.ready() 的现代等价物?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69603085/

相关文章:

javascript - $injector 在使用 Angular 继承时不工作

javascript - 执行动态注入(inject)的 <SCRIPT> 在 Firefox (47.0) 上不起作用

javascript - Next-auth logIn() 在使用 Credentials provider 时卡在/api/auth/providers

jquery - 使按钮不可见(不隐藏)

javascript - 仅在 1 行上显示文本而不破坏单词并以省略号终止

html - 使用CSS 3在div内输入时扩展搜索输入字段

Javascript 到 Python,在 for 循环的条件和最终表达式中按位移位

javascript - JavaScript 游戏上的箭头键不起作用

javascript - 跳过在 Node.js 中进行测试所需的模块

javascript - 为什么单击一个元素触发事件会阻止另一个元素工作?