讓我直截了當。根據最佳做法,我們應該在頁面底部初始化jQuery。如果我們這樣做,那麼對引用上方的jQuery對象(即$
或jQuery
)的任何引用都將爲空。但是,至於$(document).ready()
,爲什麼需要這個jQuery函數的原因是當你想在頁面加載後延遲一個函數的執行。這似乎是一個衝突。
如何在頁面頂部使用$(document).ready()
的功能,並仍然在頁面底部引用jQuery?我認爲jQuery應該在頁面頂部進行初始化,因爲這個原因。
讓我直截了當。根據最佳做法,我們應該在頁面底部初始化jQuery。如果我們這樣做,那麼對引用上方的jQuery對象(即$
或jQuery
)的任何引用都將爲空。但是,至於$(document).ready()
,爲什麼需要這個jQuery函數的原因是當你想在頁面加載後延遲一個函數的執行。這似乎是一個衝突。
如何在頁面頂部使用$(document).ready()
的功能,並仍然在頁面底部引用jQuery?我認爲jQuery應該在頁面頂部進行初始化,因爲這個原因。
如果你打算把你的腳本,在提高效率的目的頁面的底部,並沒有其他元素(超出</body> and </html>
),你甚至不會需要使用$(document).ready(...);
。
將您的代碼放在頁面的頂部是有意義的,並且在大多數情況下加載時間「節省」可以忽略不計。當腳本很大時,或者當腳本位於另一臺可能會或可能不會活動的服務器上時,它纔會有所作爲。
如果你正在鏈接jQuery,我建議把它放在頁面的底部。如果你是本地鏈接jQuery,頂部應該沒問題。只要確保使用最小化的代碼。
等等..什麼?我的印象是,document.ready比body標籤末尾的代碼更堅固。 – 2011-12-13 12:19:56
@SkippyChalmers,'document.ready'比'body.onload'更健壯,但是* both *都是DOM完成解析/執行頁面元素時觸發的事件。如果您在頁面末尾放置腳本,則基本上可以做同樣的事情。唯一的區別是所有的腳本都會在加載回調之前被執行,如果執行的代碼依賴於尚未加載的庫,這可能很重要。 – zzzzBov 2011-12-13 14:32:06
你說得對。您必須在使用$之前放置最初的jQuery參考,因此如果您在頁面頂部使用$,那麼您必須引用該庫。 – willoller 2010-11-05 16:49:30
是的 - 效率建議實際上是將所有JavaScript都放在頁面底部。您仍然可以將jQuery初始化作爲此javascript的頂部部分,並使用$(function(){...});在那之後 – 2010-11-05 16:51:31
惹惱我的事情是Telerik MVC的框架需要引用它的javascript和它的依賴框架(即:jquery)在頁面的底部,以使它們的控件正常工作。 我決定現在使用window.onload()。 – burnt1ce 2010-11-05 17:10:20