2016-08-15 56 views
0

我對如何最佳地優化JavaScript和腳本依賴關係有點困惑。JavaScript縮小和優化

比方說,我有一個名爲foo.js的腳本和一個名爲bar.js的腳本。

foo.js要求jquery ui-sortablebar.js要求jquery ui-datepicker

我的網站上只有少數幾頁需要foo.jsbar.js

我是否會將所有內容都編譯成單個文件並將其縮小並在每個頁面上調用它,即使一次只需要部分功能?

或者最好是單獨調用它們,只在需要時調用它們,並在這些情況下創建額外的http請求?

我錯過了更好的選擇嗎?

+0

這是一個權衡。您不需要在每個頁面上使用單獨的資源,因此本地瀏覽器無法使用緩存。但是,你不想過多地在每個頁面上堆積一些未在該頁面上使用的東西。所以,你必須找到一個快樂的媒體,並且如何選擇任何給定的頁面取決於一堆事情。這種或那種方式沒有絕對的答案。如果可行的話,您可以考慮少量單獨的最小化文件,這些文件可以被有效緩存,並使用適用於給定頁面的文件,同時花費大量時間優化最常用的頁面。 – jfriend00

回答

0

就我個人而言,我寧願只在需要時調用所需的資源。您不必負擔管理每個頁面的不必要的導入,並且會改善您網站的加載時間。

0

這實際上是一個與您的應用程序特別相關的折衷問題。

首先,您可以考慮使用jQuery from a CDN,這將允許增加緩存命中的可能性(減少服務器使用的帶寬量),並確保用戶獲得地理上接近的響應。

關於您的自定義代碼,衡量優化影響的最佳方法是爲您的應用運行測試。嘗試設置A/B測試,並研究用戶在您的網站上的體驗。

一般來說,在我看來,在生產中使用了獨特縮小的文件(這導致了一個HTTP請求)通常是一個合適的解決方案,但它實際上取決於您的代碼庫的大小。