2014-04-22 48 views
49

有沒有辦法減少以下內容?谷歌CDN的角度依賴?

<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.1/angular.min.js"></script> 
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.1/angular-route.min.js"></script> 
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.1/angular-sanitize.min.js"></script> 
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.1/angular-animate.min.js"></script> 
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.1/angular-cookies.min.js"></script> 

我找不到在Google CDN上託管的這些組合版本。

+0

+1我還沒有看到過......對這個問題很感興趣。 – Nix

+2

我知道這與您無關,但您是如何找到所有這些CDN網址的? Google的「Hosted Libraries」頁面似乎沒有列出主角庫以外的任何內容。 – twiz

+4

@twiz根據Google的Angular CDN公告博客文章,您可以找到針對角度通過版本的非縮小和模塊網址:https://ajax.googleapis.com/ajax/libs/angularjs/1.2.1/MANIFEST(用您選擇的版本替換版本號)。我想加入這個主站點對他們來說太麻煩了。 –

回答

15

我一直在尋找一捆,但還沒有找到。對我來說,如果你想把它們全部放在一個js中,你必須手動捆綁它們。文件。


我在想創建一個咕嚕任務(或類似)來獲取所有的依賴關係,並將它們合併成一個文件。我知道你想使用CDN,但只是想分享這個想法。

更新
任何有興趣在後者,只是碰到這種grunt-fetch-from-cdn plugin來了。還沒有嘗試過,但看起來很有趣。

7

我認爲CDN的主要優點是每個人都可以使用相同的文件,因此允許緩存根據大多數訪問者在其他站點廣泛使用的情況刪除加載文件的需要。

假設捆綁Angular dependencies的各種配置所需的置換數目將完全否定這種好處,並且您最好將包與所有其他JS捆綁在一起,以獲得儘可能最少的請求數並自行提供。

但是,它看起來好像Angular更新頻率很高,雖然適用於錯誤修復,但意味着目前在生產環境中可能有很多不同的版本(並因此存在文件)。這也會降低各個站點緩存的好處。

如果有疑問,請測試來自朋友/家人/工作人員等設備的兩種方法。在您自己以外的網站上看到了正常的互聯網使用情況。

我猜想在大多數情況下,像上面那樣分別包含每個模塊的CDN鏈接並讓緩存負責減少實際的請求數量會更明智一些。如果這成爲常見做法,那麼額外的文件數量將不會對加載時間產生太大影響。

+0

這是我發現的關於共享CDN的最佳分析之一:http://www.stevesouders。com/blog/2013/03/18/http-archive-jquery/ –

2

我同意柯爾特,但如果使用得當(請參閱「使用一個HTTP請求加載多個文件」),下面可能是有用的:JSDelivr

2

要麼你可以使用一飲而盡任務建立起來成一個腳本,或者您可以使用bower立即安裝這些依賴關係。

+0

通過編輯改進您的答案。 –