2014-04-29 39 views
-1

我打算通過使用requirejs提高公共CDN的網站加載性能,以便在公共CDN出現故障時可以進行本地回退。但很快,我發現requirejs具有優化功能,它將所有必需的模塊組合成一個大的js文件。網站加載性能

那麼,哪一個更好的做法和更好的表現?在多個公共CDN或本地的一個大JS文件中加載多個JS文件?

回答

1

你忘了選項3:來自CDN的一個大文件。通常最好儘可能少地請求,因爲低於網絡速度(kb/s),網絡延遲是一個問題。但是,如果你的代碼改變了很多(並且用戶經常返回),那麼將所有的庫和插件連接成一個文件並將你自己的代碼連接到另一個文件,而不是將所有的大文件全部連接起來可能是一個合理的想法一起。 這樣,如果你做了一個小小的改動,它不是一個大的文件發生了變化,必須再次下載,但用戶只需要再次獲取腳本文件而不是(未更改)庫。根據我的經驗,這些超過了自定義代碼的10:1。

此外,如果您使用CDN鏈接進行jQuery,最好的情況是它已經存在於用戶緩存中。

最後,我還建議您測試不同的選項(Chrome DevTools的網絡選項卡)。我有一種情況,CDN鏈接比「本地」鏈接慢得多(可能是由於我的位置,澳大利亞)。

0

這將取決於您的網站的性質。

例如,如果大多數頁面都需要大多數模塊,那麼您將從捆綁選項獲益更多。

如果您有很多模塊,並且大多數模塊只出現在單頁/幾頁上,那麼您將從CDN選項中獲益更多。

如果您希望大多數流量來自重複用戶,而不是唯一用戶,那麼您也可能從捆綁選項中受益更多。