我有一個使用幾個JavaScript/jQuery插件的網站,然後我有一個default.js
文件,它爲每個不同的頁面使用插件功能。在多個頁面上使用多個jQuery插件?
E.g.有些插件我有包括:
- 一個自定義的滾動條插件
- 幻燈片插件
- 一個Cookie插件
- 等
default.js
文件
然後,我會想辦法如下(僞代碼):
var scrolling = findScrollbarDiv;
scrolling.ScrollFunction({ options });
(然後同爲幻燈片+其他插件我)
但是,如果有一個譜斑,其中findScrollbarDiv
返回null,我得到一個錯誤類似以下內容:
ScrollFunction不是函數
這不是因爲元素返回null,而是因爲我沒有包含此頁面的插件文件。我的理由是,我不希望每個文件都包含在每個頁面上(即使不需要),因爲這可能會導致不必要的HTTP請求(尤其是在首頁上,只需要一個插件)
此錯誤反過來弄亂了JavaScript的其餘部分。
克服這個問題的最好方法是什麼?我是否應該在每個頁面中包含每個插件文件,而不管是否需要?或者是有一些JavaScript這樣我可以使用以下命令:
var scrolling = findScrollbarDiv;
if(scrolling != null) {
scrolling.ScrollFunction({ options });
}
(這種感覺有點笨重給我,但如果這是最好的解決辦法,讓我知道)
或正在使用一個默認的js文件啓動所有插件是一個壞主意?
你說你不想把它包括在不需要的地方。在這種情況下顯然需要包括它。如果不希望在此頁面上指定「滾動」,則檢查空值是否正確。 – webnoob
如果您唯一擔心的是所需的HTTP請求,您可以輕鬆地將所有插件/ jQuery本身組合到一個文件中(您可以使用GZIP和壓縮)。這樣,你會得到一個HTTP請求的一切。 – MarcoK
我想過一個文件解決方案,但爲了可維護性我寧願將它們分開。我的另一個擔心是,即使使用組合/壓縮/ gzip文件仍然很大+文件中的任何更改都會使使用緩存無效(而不是使一個文件的緩存失效) – Sean