2012-08-24 29 views
3

我使用優秀的requirejs優化器來壓縮Web應用程序的代碼。我應該在優化的JavaScript構建中嵌入第三方JavaScript庫嗎?

該應用程序使用了很多第三方庫。我有幾個選擇:

  • 讓用戶從我的服務器
  • 單獨下載所有的第三方庫讓用戶從CDN下載所有的第三方庫,如果有
  • 用戶requirejs產生在一個文件

現在「壓縮」版本所有這些庫的,我知道,高速緩存和/或CDN將與需要多長時間來獲取每個個體庫幫助,但是如果我有15個庫,我仍然會以15個http請求結束;如果我的應用程序的實際代碼最終以一個或兩個相對較小的文件提供服務,那更令人討厭。

那麼每種方法有哪些優缺點?另外,如果我將它們捆綁到我的應用程序中(而不是指向CDN),我想我會實際上「重新分配」(在常見的FOOS許可證的意義上)這些庫。

任何經驗/想法都歡迎。

謝謝。

+0

好吧,如果你使用CDN,那麼_hopefully_用戶已經有一些相同的庫被緩存了,所以不是15請求,而是希望它少一些。 – voithos

+0

這取決於CDN配置緩存的方式(如果設置了「必須重新驗證」,那麼這是一個額外的請求,雖然很快,對吧?)另外,這對緩存空閒的用戶沒有幫助我忍不住害怕......) – phtrivier

回答

0

你可以看看Why should I use Google's CDN for jQuery?的問題,爲什麼CDN是更好的解決方案。

它增加了可用的並行性。 (大多數瀏覽器將只從 一次從任何給定的網站下載3或4個文件。)

它增加了將有一個緩存命中的機會。 (隨着更多站點 按照這種做法,更多的用戶已準備好文件。)

它確保有效負載將盡可能小。 (谷歌可以 以各種格式(如GZIP或 DEFLATE)對文件進行預壓縮,這使得下載時間非常短,因爲它是超級壓縮的,並且不會在運行時壓縮。 )

它減少了您的服務器使用的帶寬量。 (谷歌基本上是 提供免費帶寬。)

它確保用戶將得到一個地理上接近的響應。 (谷歌擁有的服務器遍佈世界各地,進一步降低 延遲。)

(可選),他們會自動讓你的腳本是最新的。 (如果 你喜歡「你憑感覺飛」,你可以隨時使用 最新版本,他們提供任何腳本,這些可以解決安全 孔,但一般只是打破你的東西。)

相關問題