應該在什麼和應該從jQuery.ready()?應該在什麼和應該從jQuery.ready()?
從性能的角度來看,我已經閱讀過將所有代碼包裝在jQuery.ready()
之內的地方,但這並不是一個有效的方法。
那麼我的問題是:應該在什麼和什麼可以是沒有問題的oustide(我想代表可以保留在外面,但它是一個快速猜測)?
謝謝
應該在什麼和應該從jQuery.ready()?應該在什麼和應該從jQuery.ready()?
從性能的角度來看,我已經閱讀過將所有代碼包裝在jQuery.ready()
之內的地方,但這並不是一個有效的方法。
那麼我的問題是:應該在什麼和什麼可以是沒有問題的oustide(我想代表可以保留在外面,但它是一個快速猜測)?
謝謝
爲了獲得最佳性能,請在關閉body標記之前放置js。這樣你可以完全消除jquery。 UI下載速度很快,因爲它是not blocked,腳本被下載,當js被解析並調用時,可以確定上面dom中的元素已準備好被操縱。
jQuery.ready()在頁面加載完成後調用。見jQuery.ready()的第一句話。如果你希望事件在頁面加載完成之前觸發,那麼jQuery.ready()將不會成爲現實。
你應該保持功能delcarations如
fnc = function() { ... };
或任何其他聲明。因爲如果你全部使用它,只有當整個DOM已經加載時,代碼纔會開始執行。否則,它會在下載後立即開始執行。當你的javascript需要下載DOM時,jQuery包裝應該只存在。
var blah = function() {
//...
};
$(function() { //same as jQuery(document).ready or $(document).ready
blah();
});
但是你用你所有的函數decs來膨脹窗口對象。最好在單個應用程序名稱空間中聲明這些函數。 – redsquare 2011-05-04 18:24:05
@redsquare哦,這實際上是一個非常棒的點。謝謝! – omninonsense 2011-05-04 18:28:00
沒問題,高興幫忙:) – redsquare 2011-05-14 18:11:34
好的提示。但是關於jQuery代碼,什麼樣的代碼(事件,ajax,...)實際上可以在DOM之外生活,沒有問題? – Cybrix 2011-05-09 14:14:07
@Cybrix如果您在底部包含腳本,它們全部都是! – redsquare 2011-05-09 14:21:17
抱歉,您是第一次正確回答問題。我剛剛讀了你的答案有點太快了。 :P – Cybrix 2011-05-09 14:25:40