我正在加載頁眉,頁腳和動態主體的模板網站上工作。我有一個類,在其中指定將根據當前頁面加載哪些腳本以及用戶登錄狀態。我已經寫了幾個jQuery插件,並在頁面加載時我需要通過文檔準備好了,有沒有限制?
$(文件)的插件調用。就緒(函數(){// $()。thePlugin() }) ;
我個人在每個頁面上都沒有超過一個文檔就緒腳本,但我沒有看到其他選項。有4或5個腳本調用該函數是不好的做法嗎?
我正在加載頁眉,頁腳和動態主體的模板網站上工作。我有一個類,在其中指定將根據當前頁面加載哪些腳本以及用戶登錄狀態。我已經寫了幾個jQuery插件,並在頁面加載時我需要通過文檔準備好了,有沒有限制?
$(文件)的插件調用。就緒(函數(){// $()。thePlugin() }) ;
我個人在每個頁面上都沒有超過一個文檔就緒腳本,但我沒有看到其他選項。有4或5個腳本調用該函數是不好的做法嗎?
如果您使用PHP,您是否使用PHP自動加載器進行了研究?
http://php.net/manual/en/language.oop5.autoload.php
這可能會幫助你減少的請求,並允許最後的機會包括。
這不是一個你要調用的函數,而是一個你正在關注的事件......多次執行它沒有任何問題,但不要依賴它們以特定順序執行。
側前端,這是一個相當的快捷方式:
$(function() { $().thePlugin(); });
而且,如果這些都是常見的所有網頁,將它們移動到外部.js文件。如果沒有太多的事情發生,那麼一些沒有找到任何東西的選擇器不會受到傷害。這只是根據您使用的代碼百分比佔多少%的時間進行權衡。
在一頁上有多個ready()
塊就沒問題。事實上,它已經準備好了,所以你可以做到這一點。舊的方法(通常在load()
事件使用)做的事情,如:
window.onload = function() {
...
}
但很快爆發時,多個腳本都分配load()
處理程序,這導致:
function addLoad(handler) {
var current = window.onload;
if (current) {
window.onload = function() {
current();
handler();
}
} else {
window.onload = handler;
}
}
嗯,有一點點除此之外,這是基本原則。 jQuery本質上爲你處理這個樣板,所以你的事件處理程序不會互相打開。
多個ready()
處理程序使您的代碼更容易維護,可能更易於閱讀。如果你只做了幾個,那麼就不用擔心。如果你達到數百個(在同一頁面上),那麼也許是時候重新思考了。
另一種方法是將標記寫入PHP中的緩衝區,並將所有ready()
代碼寫入另一個緩衝區,最後可以按照您喜歡的順序寫出這些緩衝區。您可以有效地將您的ready()
處理程序合併爲一個這種方式。
感謝基本答案我一直在尋找! – cdnicoll 2010-02-12 15:59:19
你應該接受這個問題作爲答案。只需要一秒鐘。 – 2011-09-21 15:48:20
我開始工作時會看一看。感謝您的建議! – cdnicoll 2010-02-12 16:00:20