2010-07-28 131 views
3

我今天,思想爲我聯繫網頁3個外部.css文件:「這是太多HTTP請求」 我不知道是否應該使用 php將這些文件合併爲一個?或者,我應該只用<style>標籤將全部三個導入 <head>?我在interwebs上發現了一個相關鏈接: Suture CSS or JavaScript Files to Reduce HTTP Requests但我不認爲它給出了充分的討論。我應該將.css文件與php結合使用以減少http請求嗎?

注意:我這個標籤對JavaScript以及因爲我相信它也適用於.js文件所以請注意如果您的回答僅適用於CSS或JavaScript

回答

3

我認爲這是沒有必要的。瀏覽器將只下載一次這兩個文件。如果將它們添加到頁面上的樣式標記中,則每次加載此頁面時都必須下載相同的內容。

除非您的網頁/網站有很多每秒的訪問,您將不再需要它。

這就是我想......

+0

所以你幾乎覺得這種技術太挑剔和不謹慎,除非我正在製作一個非常高的交通網站(我不這麼做)? – 2010-07-28 21:49:50

+0

我同意這感覺就像一個過早優化的情況。儘管將css和js文件合併(尤其是小文件)可以幫助用戶降低頁面負載,但除非您對頁面進行配置,並且發現這是一個真正的瓶頸,否則這可能是不值得的。 – 2010-07-28 21:50:16

+0

我很尊重@CrociDB和@Matthew。任何基於Web的介質中最關鍵的瓶頸是I/O,更具體地說是HTTP請求。減少HTTP請求的總數可以證明是任何給定Web應用程序的最有效的速度優化。即使只有一個請求可能有可能削減從幾百毫秒到非常長的全秒。對於CSS文件只下載一次,然後緩存在瀏覽器中的論點:你的第一印象很重要!如果第一次很快,那麼以後會更快。 – Stephen 2011-01-25 16:15:52

3

我得到了,如果我不知道應該使用PHP將這些文件合併爲一個?

通常是的,這不僅是因爲HTTP請求數(通常只會發生一次,反正),而且還因爲Internet Explorer不能more than 31 external style sheets on the same page處理的。

最好做一個緩存的方式,這樣你就不必在每次CSS要求運行PHP。 This question有很多關於這個問題的優秀資源的指針。

或者我應該導入所有三成與標籤?

號:它使樣式未緩存的瀏覽器,並增加了每個請求大小。

+0

1。 – Stephen 2011-01-25 16:17:19

0

我用相結合的方法,使我可以只投放一個css和儘可能少的js文件成爲可能。

通過使用媒體查詢這是可能的,並且通過使用體類選擇,你可以在線添加即樣式,而無需使用黑客打印和屏幕的風格組合成一個頁面。

例如,在的main.css

@media screen { 
    p { [styles] } 
    ... 
} 
@media print { 
    p { [styles] } 
    ... 
} 

本文給出體類選擇的概要:用於HTTP請求減少
http://misteroneill.com/improved-internet-explorer-targeting-through-body-classes/

+0

非常有用,但不幸與我目前的項目無關。我會保留這一個保留;-) – 2010-07-30 20:04:31