Is $(document).ready necessary?

I saw this question in stackoverflow but do not feel that it was answered at all.

Is $(document).ready necessary?

I link all my javascripts at the bottom of the page so in theory they are all running after the document is ready anyways.

61076 次浏览

$(document).ready有必要吗?

没有

如果您已经将所有脚本放置在 </body>结束标记之前,那么您已经做了完全相同的事情。

此外,如果脚本不需要访问 DOM,那么除了可能依赖于其他脚本之外,加载它的位置也无关紧要。

对于许多 CMS 来说,您没有太多的选择来加载脚本,所以对于模块化代码来说,使用 document.ready事件是一种很好的形式。如果在其他地方重用旧代码,您真的希望返回并调试它吗?

off-topic:

作为附注: 您应该使用 jQuery(function($){...});而不是 $(document).ready(function(){...});,因为它强制别名到 $

不,如果你的 javascript 是关闭之前的最后一件事,你就不需要添加那些标签。

作为附注,下面的代码是 $(document) . ready 的简写。

$(function() {
// do something on document ready
});

这个问题可能不错,你看了吗? jQuery: Why use document.ready if external JS at bottom of page?

我在互联网上看到过关于 jquery 的 document.ready使用的参考文献/博客文章。在我看来,无论是使用它还是把你所有的 javascript 放在页面的底部都是有效的。现在的问题是,哪个更好?这只是一个编程风格的问题。

不,如果你知道你没有任何延迟的事情发生的话,这是没有必要的——而且在大多数情况下,如果你从上到下开发了你正在开发的东西,你就会知道。

--当你引入别人的代码,而没有彻底审核它时,你就不知道了。

所以,问问你自己你是否使用了一个框架或者编辑器来帮助你处理这个结构?你是不是把别人的代码带进来了却没有仔细阅读每个文件?您是否准备好通过操作系统、浏览器和浏览器版本矩阵来测试您的代码?你 需要从你的代码中挤出每一盎司的速度吗?

Ready ()使许多问题变得无关紧要。Ready ()的设计目的是为了让您的生活更轻松。这对性能的影响很小(我敢说这是可以接受的)。

不,没必要。您可以将 script 标记放在 body 结束标记之前,或者如果您支持 IE9 + ,则可以使用本机 JS。

<script>alert('DOM Loaded!');</script>
</body>


<script>
document.addEventListener("DOMContentLoaded", function(event) {
// DOM has loaded ready to fire JS scripts
});
</script>