2009-10-19 71 views
13

如何減少css http請求?如何減少css http請求?

1大的css文件

其導入其他所有CSS

是這同

或一個css文件?

什麼是使用這種

 
@import url('/css/typography.css'); 
@import url('/css/layout.css'); 
@import url('/css/color.css'); 

回答

11

1大的css文件 或進口的所有其他CSS 一個CSS文件,這是一樣的嗎?

沒有作爲客戶端仍然需要加載每個CSS文件(各一個HTTP請求)

一些鏈接瞭解更多關於減少HTTP請求:

如果您使用的是Firefox,我強烈建議Firebug,它提供了有關HTTP請求的詳細信息的視圖。
編輯:
作爲flybywire在評論中指出:YSlow是一個Firefox擴展Firebug的集成,分析網頁性能

3個簡單的事情,我會嘗試先:

  • 結合全球CSS( 在每個頁面上使用的東西)
  • 壓縮CSS(使用YUI compressor或某些在線工具)
  • 在線指定頁面的東西 (未中 網頁共享的東西)

大多數的那些東西也適用於JavaScript文件。

+4

如果你使用的是Firebug,我強烈推薦YSlow – flybywire 2009-10-19 09:42:57

3

樣式進口依舊會觸發一個HTTP請求的好處。我建議只提供一個CSS文件。您可以使用從服務器端導入的多個CSS文件來發送一個文件,而無需管理單個文件中的所有CSS規則。

+2

並摒棄它! – random 2009-10-19 09:31:59

0

您可以使用HTTP請求的組合來指定哪些應該作爲一個縮小的css文件瀏覽器常見的CSS文件的列表。這將減小規模,並使請求的數量顯着下降。

這個工作在.NET方面的一個很好的例子: http://www.codeproject.com/KB/aspnet/HttpCombine.aspx

1

如果您正在使用asp.net mvc的 - 退房this approach。仍然像一個魅力。基本上 - 它使用httphandler來合併,壓縮和緩存資產文件。

但這是特定於asp.net。無法分辨是否有幫助。


Offtopic:

可以申請JavaScript文件相同的技術(這感覺太棒了有很好的結構化的js文件和靜止 - 避免許多HTTP請求)。

對於圖像 - 檢查出spriting。這bookmarklet也可以相當有幫助。

1

你想要減少http請求的數量或大小嗎?

我建議把所有最常用的選擇爲一個大的CSS文件(用於所有的庫/插件一起),並與在線優化/極小再壓縮它

0

我寫了一些這方面的博客文章。見Supercharging CSS in PHP。儘管它是爲PHP編寫的,但其原理是通用的。

基本上你的目標是減少外部HTTP請求。您可以結合使用CSS文件和/或版本控制CSS文件,並使用遠期Expires標題來完成此操作。

最後,如果客戶端接受它,你應該總是使用GZip CSS(和Javascript)。

1

如果你想從一個Web場服務你的CSS文件,或者它是一個高容量的網站,我建議在看看: http://code.google.com/p/talifun-web/wiki/CrusherModule 它使用一個文件的專家以尋找關於CSS/JS變化文件。 Css/js文件屬於web.config中指定的文件集。當在組件js/css文件中檢測到更改時,它會爲文件集創建新的css或jss。

它還具有輸出css/js文件集鏈接的簡單控件。該控件將追加一個查詢字符串與文件的散列,所以你保證正確的文件內容。

這意味着您可以直接爲IIS提供遠程文件。然後你可以利用內核模式緩存。同時也意味着你不需要擔心的HTTP頭支持車實現:

  • ETag的
  • 過期
  • 的Last-Modified
  • 的if-match
  • 如果 - 無 - 匹配
  • If-Modified-Since
  • If-Unmodified-Since
  • If-Modified-Since

最好將你所有的js/css文件壓縮成整個網站的一個巨型文件,然後動態地爲頁面提供所需的js/css文件。瀏覽器可以緩存一個巨大的文件,然後再也不用擔心從您的站點再次下載css/js。