什麼是動態地將jQuery lib包含到頁面中的最輕量級方法? 我正在一個頁面上工作,有時它會運行一些自定義腳本(10行),其他時間也需要整個jquery。JavaScript:加載jQuery on Demand
回答
一旦用戶已經下載了JQuery,它就會被緩存在他們的系統中,所以在第一次初始下載後包含它真的很簡單。你可能只是將它包含在你需要的頭腦上,而不用擔心在頁面中稍後將它添加到JS運行時。
包括從谷歌的CDN:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
有一個大的機會,你的客戶會已經jQuery的在他們的瀏覽器緩存。
我不相信Google。我認爲這種做法是一個巨大的安全問題......我正在等待webdev世界的其他人喚醒並聞到咖啡。我想自己提供這些文件。我相信我。 – BuddyJoe 2009-10-23 14:26:59
我不知道你是否可以編寫代碼來檢查從谷歌提取的jQuery庫的內容並計算校驗和或其他內容。當然,一個流氓版本的jQuery可能會充分地破壞Javascript環境,無論如何你都不能相信你的校驗碼。 – Pointy 2009-10-23 14:30:32
我承認我比大多數公司更信任Google。但想想所有提供「分享這個」小工具的公司,並且人們在他們的頁面上包含他們的腳本。我根本不相信這些隨機公司。我有人侵入這些網站之一,他們可以將任何腳本注入到您的網頁....對於釣魚或重新啓動漏洞利用等等...... – BuddyJoe 2009-10-23 14:36:48
只需添加的jQuery腳本標籤,當你需要它:
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'http://www.example.com/jquery.js';
document.body.appendChild(script);
喜歡這種經典風格。 +1 – BuddyJoe 2009-10-23 14:30:32
可能你會發現Google AJAX APIs有用。您可以通過撥打呼叫,當您需要加載的jQuery:
google.load("jquery", "1");
看到達林的評論。 – BuddyJoe 2009-10-23 14:29:37
是啊,我只是包括它總是 - 它的小,如果你使用谷歌的CDN它會希望已經被緩存。
如果您必須按需加載它,您可以編寫用於將腳本標籤附加到主體的代碼。這段代碼很常見。
void((function(){
var e=document.createElement('script');
e.setAttribute('type','text/javascript');
e.setAttribute('src','jquery.js');
document.body.appendChild(e)
})());
只要繼續幷包括它。
如果你有其他頁面在哪裏使用jQuery,那麼它可能已經被緩存,如果他們在你的網站上做了很多事情(或者以任何頻率訪問它)。不過,請使用縮小的表格。使用Google的邏輯適用,但緩存的可能性較小。
W.r.t您的意見:您經常在自己的網站上驗證網頁嗎?如果您的網站確實被破解,您知道多久?如果Google託管的代碼被更改,發現的速度會高出許多個數量級,並且對您的網站的影響會相對較小,IMO。
<script src="http://www.google.com/jsapi"></script>
<script>
//your awesome google
google.load("jquery", "1");
</script>
我不知道爲什麼這些人說谷歌是一個安全問題,他們不想谷歌服務它。你是錯的(或給我原因爲什麼)ID說它更有可能爲你下載一個壞的或改變版本的jQuery(你應該alwase去網站)比谷歌給你的問題。谷歌真棒,他們很容易,主機,如果你和prolly有更多的吞吐量比你弱webserver那麼爲什麼你不使用它?
對不起DUP代碼我還在起步在這個網站,但我不能找到回覆按鈕
我不想相信其他的網絡服務器。我不會允許第三方將腳本注入我的頁面。即使我想我知道他們在注射什麼。因爲他們可以(1)移動它(2)改變它(3)他們可能會被黑客攻擊,然後用我的頁面做任何他們想做的事情。我認識到與谷歌這種可能性較小。但爲什麼不去安全的路線。 – BuddyJoe 2009-10-26 17:02:23
- 1. JS(或Jquery)on demand div gallery
- 2. Datagrid on demand load off
- 3. Hadoop On Demand
- 4. Http response code on demand
- 5. PhpStorm - xDebug on demand not attached
- 6. Jira On Demand與Bamboo集成
- 7. 安卓相機AutoFocus on Demand
- 8. iCloud Backup for CoreData - On Demand?
- 9. On Demand Linux t2.micro實例小時
- 10. 在SAS On Demand上輸入.sas7bdat文件
- 11. qts on javascript,jquery
- 12. jquery加載和javascript
- 13. 從JavaScript加載JQuery
- 14. Javascript XML加載jQuery
- 15. Javascript - On('Click') - Error - 打開頁面加載
- 16. 在Ruby on Rails中加載JavaScript
- 17. jQuery on()用ajax加載的內容
- 18. 頁面加載時JavaScript/jQuery加載欄?
- 19. jQuery .on(); vs JavaScript .addEventListener();
- 20. 顯示/隱藏列表視圖SectionIndex on demand
- 21. 如何將On Demand Confluence頁面內容圖像下載到本地機器?
- 22. jQuery使用.on(加載)與ajax加載內容
- 23. 電子郵件將SSRS報告爲Excel附件On Demand
- 24. jquery加載外部JavaScript
- 25. 通過jQuery加載javascript ajax
- 26. Javascript/jQuery加載(衝突)
- 27. JavaScript動態加載jQuery庫
- 28. 從Atlassian的Cloud/On-Demand服務獲取用戶列表
- 29. 如何在不使用Load On Demand的情況下通過AJAX將數據加載到RadComboBox?
你不應該擔心jQuery的加載時間,其託管在谷歌和所有的網站上使用相同的鏈接,所以它已經緩存在所有人的機器上 – Khodor 2009-10-23 14:20:28
Kheu,請參閱對Darin的評論。 – BuddyJoe 2009-10-23 14:34:32