$(文件).ready是否必要?

时间:2011-01-10 05:41:07

标签: jquery document-ready

我在stackoverflow中看到了这个问题,但感觉它根本没有得到回答。

$(document).ready是否必要?

我将所有的javascripts链接到页面底部,所以理论上它们都是在文档准备就绪后全部运行的。

5 个答案:

答案 0 :(得分:118)

  

$(document).ready是否必要?

没有

如果您已将所有脚本放在</body>结束标记之前,那么您已完成相同的操作。

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

对于许多CMS,您没有太多选择加载脚本的位置,因此模块化代码使用document.ready事件是一种很好的形式。如果你在其他地方重复使用它,你真的想回去调试旧代码吗?

题外话:

作为旁注:您应该使用jQuery(function($){...});代替$(document).ready(function(){...});,因为它会强制别名为$

答案 1 :(得分:22)

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

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

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

这个问题可能不错。你读过它吗? jQuery: Why use document.ready if external JS at bottom of page?

答案 2 :(得分:4)

不,如果您知道没有任何延期的事情发生,则没有必要 - 在大多数情况下,您将知道您是否从上到下开发了您正在进行的工作。

- 当你带来别人的代码而没有彻底审核时,你不知道。

那么,问问自己,您是否在使用可以帮助您构建结构的框架或编辑器?您是否引入了其他人的代码并且您没有费心阅读每个文件?您是否准备好通过测试代码的操作系统,浏览器和浏览器版本矩阵?您是否需要从代码中挤出每一盎司的速度?

document.ready()使许多问题变得无关紧要。 document.ready()旨在让您的生活更轻松。它出现在一个小的(我敢说可接受的)性能上。

答案 3 :(得分:1)

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

答案 4 :(得分:0)

否,没有必要。您可以将script标签放在正文关闭标签之前,或者如果您支持IE9 +,则可以使用本机JS。

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

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