2011-05-04 69 views
4

应该在什么和应该从jQuery.ready()?应该在什么和应该从jQuery.ready()?

从性能的角度来看,我已经阅读过将所有代码包装在jQuery.ready()之内的地方,但这并不是一个有效的方法。

那么我的问题是:应该在什么和什么可以是没有问题的oustide(我想代表可以保留在外面,但它是一个快速猜测)?

谢谢

回答

3

为了获得最佳性能,请在关闭body标记之前放置js。这样你可以完全消除jquery。 UI下载速度很快,因为它是not blocked,脚本被下载,当js被解析并调用时,可以确定上面dom中的元素已准备好被操纵。

+0

好的提示。但是关于jQuery代码,什么样的代码(事件,ajax,...)实际上可以在DOM之外生活,没有问题? – Cybrix 2011-05-09 14:14:07

+0

@Cybrix如果您在底部包含脚本,它们全部都是! – redsquare 2011-05-09 14:21:17

+0

抱歉,您是第一次正确回答问题。我刚刚读了你的答案有点太快了。 :P – Cybrix 2011-05-09 14:25:40

0

jQuery.ready()在页面加载完成后调用。见jQuery.ready()的第一句话。如果你希望事件在页面加载完成之前触发,那么jQuery.ready()将不会成为现实。

0

你应该保持功能delcarations如

fnc = function() { ... }; 

或任何其他声明。因为如果你全部使用它,只有当整个DOM已经加载时,代码才会开始执行。否则,它会在下载后立即开始执行。当你的javascript需要下载DOM时,jQuery包装应该只存在。

var blah = function() { 
    //... 
}; 

$(function() { //same as jQuery(document).ready or $(document).ready 
    blah(); 
}); 
+1

但是你用你所有的函数decs来膨胀窗口对象。最好在单个应用程序名称空间中声明这些函数。 – redsquare 2011-05-04 18:24:05

+0

@redsquare哦,这实际上是一个非常棒的点。谢谢! – omninonsense 2011-05-04 18:28:00

+0

没问题,高兴帮忙:) – redsquare 2011-05-14 18:11:34