在加载所有脚本文件后,jQuery 中的 $().ready() 是否触发



我在不同的js文件中声明全局变量,然后在不同的文件中使用。在开始执行之前,我需要确保所有 js 都已加载。我也在尝试使用 require.js 迁移到模块化 js。但现在我需要一个快速的解决方案。在$().ready()下运行我的 js 代码安全吗?我想脚本标签会同步加载,因此在所有脚本加载完毕之前,DOM 不会准备就绪。

或者$(window).load()保证已加载所有脚本文件。

谢谢!

如果以

内联方式加载脚本,则在加载这些脚本之前,DOM 将不就绪,因此 $().ready() 函数在加载这些资源之前不会触发。如果在脚本元素中使用 async 标记,则在加载脚本资产之前,DOM 可能会被归类为就绪,具体取决于脚本文件的大小。

但是 $().ready() 现在被定义为不被 jQuery 推荐,所以使用 $(function(){}) 代替。

$(window).on('load', function () {})将保证加载所有资源,而不仅仅是脚本。

但是为什么需要必须加载所有脚本?脚本同步执行(没有延迟、异步和延迟加载技术),如果其中一个脚本未加载,浏览器引擎将等待它,加载后它将继续执行。防止浏览器引擎的这种等待是客户端优化的主要目标之一。例如,您可以尝试将所有脚本添加到一个文件中。

最新更新