2009-04-29 52 views
2

重複:Multiple javascript/css files: best practices?包括CSS文件和Javascript文件加載 - 我該如何優化

傢伙嗨,我的應用程序幾乎完成,但事情是,我發現我在內的很多外部JavaScript文件和CSS。我在這裏使用了很多第三方免費插件,並且不想觸摸代碼,因爲害怕搞砸東西。

但結果是,我發現我現在已經包括8個外部CSS文件以及高達20個外部Javascript文件:o - 我不記得有看到任何重大的網站包括超過2或3 css_ JS文件合併,所以我絕對必須在這裏做錯事。我怎麼解決這個問題 - 我讀了一個地方,一個大的js文件加載速度比2或3個文件大一半的累積大小。

任何幫助,將不勝感激

回答

2

一個大文件比一堆小文件要好,因爲在這種情況下,Web瀏覽器向Web服務器發出一個請求,而不是8個請求。更重要的不是總規模的細微差異,而是請求總數的latency。想象兩種情況:你下載一個8 kB的文件和8個每個1KB的文件。

  1. 在第一場景中的總時間是不便像80毫秒(傳輸時間)+ 50毫秒(等待時間)= 130毫秒

  2. 在第二種情形中你有不便等的8x10毫秒(傳送時間) +8x50毫秒(!)等待時間= 480毫秒(!)

您看到區別。這絕不是一個全面的例子,但你明白了。

因此,如果可能的話,將文件合併在一起。壓縮內容以減少要傳輸的數據量。並使用緩存來擺脫重複請求。

+0

如果我將JavaScript文件合併在一起,是否存在導致任何類型衝突的風險?還是隻是一個拷貝一個接一個地拷貝文件內容的問題? – Ali 2009-04-29 12:26:20

0
+1

儘管這個鏈接可能回答這個問題,但最好在這裏包含答案的基本部分,並提供供參考的鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。看看這篇文章:[我如何寫一個很好的答案](http://stackoverflow.com/help/how-to-answer)。 – ByteHamster 2016-03-09 14:19:55

0

在過去的項目中,我用SmartOptimizer壓縮JS和在飛行中的CSS文件。這是一個基於PHP的文件縮小器。

通過使用即時縮放功能,您不必保持單獨的源文件和縮小文件。當然,需要一點處理能力來保持文件的縮小。此外,加載一個縮小的文件具有以下優點更好:

  1. 較小的文件大小(肯定)
  2. 的成分,不併行下載延遲,因爲更少的腳本/樣式表。
+0

聽起來不錯,但你的鏈接似乎被打破。 – BrynJ 2009-04-29 09:58:55

1

如果您將CSS文件按照它們當前加載到頁面的順序組合成一個文件(並且與JS相同),那麼它們將與以前完全相同;當你開始改變規則可以意外覆蓋他們以前不習慣的順序時。

1

無論如何,你的大部分文件都應該放在客戶端緩存中,所以我不會太擔心它。只要確保你設置了正確的標題。當然,如果這是你網站的首頁,那麼是的,你可能應該進一步優化。