2009-10-23 118 views
3

什麼是動態地將jQuery lib包含到頁面中的最輕量級方法? 我正在一個頁面上工作,有時它會運行一些自定義腳本(10行),其他時間也需要整個jquery。JavaScript:加載jQuery on Demand

+0

你不應該擔心jQuery的加載時間,其託管在谷歌和所有的網站上使用相同的鏈接,所以它已經緩存在所有人的機器上 – Khodor 2009-10-23 14:20:28

+0

Kheu,請參閱對Darin的評論。 – BuddyJoe 2009-10-23 14:34:32

回答

1

一旦用戶已經下載了JQuery,它就會被緩存在他們的系統中,所以在第一次初始下載後包含它真的很簡單。你可能只是將它包含在你需要的頭腦上,而不用擔心在頁面中稍後將它添加到JS運行時。

1

包括從谷歌的CDN:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> 

有一個大的機會,你的客戶會已經jQuery的在他們的瀏覽器緩存。

+2

我不相信Google。我認爲這種做法是一個巨大的安全問題......我正在等待webdev世界的其他人喚醒並聞到咖啡。我想自己提供這些文件。我相信我。 – BuddyJoe 2009-10-23 14:26:59

+1

我不知道你是否可以編寫代碼來檢查從谷歌提取的jQuery庫的內容並計算校驗和或其他內容。當然,一個流氓版本的jQuery可能會充分地破壞Javascript環境,無論如何你都不能相信你的校驗碼。 – Pointy 2009-10-23 14:30:32

+1

我承認我比大多數公司更信任Google。但想想所有提供「分享這個」小工具的公司,並且人們在他們的頁面上包含他們的腳本。我根本不相信這些隨機公司。我有人侵入這些網站之一,他們可以將任何腳本注入到您的網頁....對於釣魚或重新啓動漏洞利用等等...... – BuddyJoe 2009-10-23 14:36:48

10

只需添加的jQuery腳本標籤,當你需要它:

var script = document.createElement('script'); 
script.type = 'text/javascript'; 
script.src = 'http://www.example.com/jquery.js'; 
document.body.appendChild(script); 
+1

喜歡這種經典風格。 +1 – BuddyJoe 2009-10-23 14:30:32

0

可能你會發現Google AJAX APIs有用。您可以通過撥打呼叫,當您需要加載的jQuery:

google.load("jquery", "1"); 
+0

看到達林的評論。 – BuddyJoe 2009-10-23 14:29:37

1

是啊,我只是包括它總是 - 它的小,如果你使用谷歌的CDN它會希望已經被緩存。

如果您必須按需加載它,您可以編寫用於將腳本標籤附加到主體的代碼。這段代碼很常見。

void((function(){ 
    var e=document.createElement('script'); 
    e.setAttribute('type','text/javascript'); 
    e.setAttribute('src','jquery.js'); 
    document.body.appendChild(e) 
})()); 
+0

在cdn上看到達林的評論。這更像是+1 – BuddyJoe 2009-10-23 14:28:13

+0

注意上面的代碼適合插入〜任何地方〜 - 它實際上來自一個小書籤。根據您的需求調整。 – Justin 2009-10-23 16:04:49

2

只要繼續幷包括它。

如果你有其他頁面在哪裏使用jQuery,那麼它可能已經被緩存,如果他們在你的網站上做了很多事情(或者以任何頻率訪問它)。不過,請使用縮小的表格。使用Google的邏輯適用,但緩存的可能性較小。

W.r.t您的意見:您經常在自己的網站上驗證網頁嗎?如果您的網站確實被破解,您知道多久?如果Google託管的代碼被更改,發現的速度會高出許多個數量級,並且對您的網站的影響會相對較小,IMO。

0
<script src="http://www.google.com/jsapi"></script> 
<script> 
//your awesome google 
google.load("jquery", "1"); 
    </script> 

我不知道爲什麼這些人說谷歌是一個安全問題,他們不想谷歌服務它。你是錯的(或給我原因爲什麼)ID說它更有可能爲你下載一個壞的或改變版本的jQuery(你應該alwase去網站)比谷歌給你的問題。谷歌真棒,他們很容易,主機,如果你和prolly有更多的吞吐量比你弱webserver那麼爲什麼你不使用它?

對不起DUP代碼我還在起步在這個網站,但我不能找到回覆按鈕

+0

我不想相信其他的網絡服務器。我不會允許第三方將腳本注入我的頁面。即使我想我知道他們在注射什麼。因爲他們可以(1)移動它(2)改變它(3)他們可能會被黑客攻擊,然後用我的頁面做任何他們想做的事情。我認識到與谷歌這種可能性較小。但爲什麼不去安全的路線。 – BuddyJoe 2009-10-26 17:02:23