head.ready()vs. $(document).ready

时间:2012-08-31 18:57:34

标签: jquery document-ready head.js

最近发现head.js图书馆和男孩我很满意,虽然我对一件事情仍然感到困惑。

来自headjs.com:

  

当脚本到达时,已经触发了“DOM ready”事件,例如$(document).ready()。如果加载的脚本依赖于该事件,请确保您的库可以处理此事件。 jQuery 1.4+有效。

考虑到这一点,如果$(document).ready()中的代码依赖于使用head.js加载的外部脚本,那么设置使用jQuery的页面的最佳方法是什么?

我们可以一起丢失$(document).ready()调用并仍然成功设置事件监听器等依赖于文档准备好的东西吗?例如:

head.js("script1.js", "script2.js", "script3.js", function() {
    $('#button').click(function(event) {
        alert("clicked");
    });
});

或者我们是否要在函数中包装$(document).ready()?

只是想知道最佳做法是什么,以确保在需要的时候一切都准备就绪。

1 个答案:

答案 0 :(得分:4)

无论哪种方式都没问题。如果DOM已经完全初始化,则立即调用传递给ready()的处理程序。

对于性能增益,您可能希望删除ready处理程序并直接包含代码,除非您依赖于像jQuery $这样的副作用对象被传递给处理程序。