2009-12-11 69 views
1

我想知道什麼是最好的。我有不同的JS函數,例如我有手風琴插件,聯繫頁面的腳本。但我只在一頁上使用每個腳本,例如「常見問題頁面」使用手風琴JS,但顯然不使用聯繫人JS。 這與許多其他例子沿(我的js dir是460KB大總,在不同的文件分隔)性能加載js文件

那麼什麼是最好的,把所有的腳本在一個文件中,在我的頭模板加載它,或將其單獨成左右10個不同的文件並在需要時加載它們?

問候

回答

0

「最佳」通常不是一個尺寸適合所有人。

合併文件一起意味着更少的連接,(假設你的緩存設置是正確的),它可以讓你的第一個網頁瀏覽都採取一擊,然後其他的頁面將受益。

拆分出來給你更多的粒度在緩存方面,但它是在多連接(每個連接都有一個與之關聯的開銷)的成本。請記住,許多瀏覽器只能連接到任何給定的主機名。這是HTTP規範施加的舊限制。

通常「最好」是找到辦法大塊他們到足夠大的羣體,對於任何一個頁面,你不下載太多額外的,但你可以在頁面之間分享了很多。過分擔心下載過多會讓更多的羣體不滿意。

你去哪種方式,一定要壓縮腳本(刪除空白,註釋等),爲他們服務了GZip壓縮,或縮小,並設置適當的過期頭,使用戶沒有在下載同一個腳本並結束。

1

你想將它們都放置在一個文件中。它減少了到服務器的訪問次數並減少了開銷。

在文檔的末尾將它們放置,一般建議爲這樣的頁面的其餘部分下載事先。

這裏的描述由雅虎在哪裏包括腳本和有關儘量減少前往服務器的最佳做法的鏈接。 http://developer.yahoo.com/performance/rules.html

0

我會根據什麼地方使用或只是在某處將它分組成一對或三個文件。

此外,用這麼多的代碼,你應該看看縮小代碼,以減少下載時間。我以前使用過YUI Compressor,做得很好,很容易集成到構建文件中。

0

將它們組合成一個文件 - 這意味着更少的HTTP請求。

但是,這是非常重要的是,你的CSS和JS文件設置過期標題。您應該始終設置這些標頭,但是如果您迫使用戶重新下載每頁加載的10個文件的內容,那就特別糟糕。

0

如果您真的只在單個頁面上使用每個功能,將它們組合到一個文件中將不會獲得太多收益。加載訪問者首先訪問的任何頁面需要更長的時間,但後續頁面加載速度會更快。

如果大多數腳本只用在幾頁上,那麼確定訪問者可能首先擊中哪些頁面(主頁面,再加上任何有價值的書籤)併爲這些頁面生成組合的js文件可能是有意義的,所以他們儘可能快地加載。然後在他們使用的任何頁面上加載較少使用的腳本。