如何减少css http请求?

时间:2009-10-19 09:28:35

标签: css

如何减少css http请求?

1个大型css文件

或一个导入所有其他css的css文件

是这样吗?

使用此

有什么好处
@import url('/css/typography.css');
@import url('/css/layout.css');
@import url('/css/color.css');

7 个答案:

答案 0 :(得分:11)

  

1个大型css文件   或一个导入所有其他CSS的css文件   这是一样的吗?

否,因为客户端仍然需要加载每个CSS文件(每个都有一个HTTP请求)

了解有关减少HTTP请求的更多信息的链接:

如果您使用的是Firefox,我强烈推荐Firebug,它提供了一个包含HTTP请求详细信息的视图。
修改
正如flybywire在评论中指出的那样:YSlow是一个Firefox扩展,它与Firebug集成以分析网页性能

我会先尝试3件容易的事情:

  • 结合全球CSS(你的事情 在每一页上使用)
  • 压缩CSS(使用YUI compressor或某些在线工具)
  • 内联特定于页面的内容 (不共享的东西 页)

大部分内容也适用于Javascript文件。

答案 1 :(得分:3)

样式导入仍会触发HTTP请求。我建议只提供一个CSS文件。您可以使用服务器端的导入组合多个CSS文件,以便在不管理单个文件的所有CSS规则的情况下发送一个文件。

答案 2 :(得分:1)

如果您使用的是asp.net mvc - 请查看this approach。仍然像一个魅力。基本上 - 它使用httphandler来组合,压缩和缓存资产文件。

但那是asp.net特有的。无法判断这是否有帮助。


Offtopic:

你可以申请javascript文件的相同技术(拥有漂亮的结构化js文件感觉很棒,并且仍然 - 避免许多http请求)。

对于图像 - 请查看spriting。这个bookmarklet也非常有用。

答案 3 :(得分:1)

您想减少http请求的数量或大小吗?

我建议将所有最常用的选择器放入一个大的CSS文件(以及所有使用的库/插件)并使用在线优化器/最小化器

缩小它

答案 4 :(得分:1)

如果您要从Web场提供css文件,或者它是一个高容量网站,我建议您查看: http://code.google.com/p/talifun-web/wiki/CrusherModule 它使用文件观察器来查找css / js文件的更改。 Css / js文件属于web.config中指定的文件集。当在组件js / css文件之一上检测到更改时,它会为文件集创建新的munged css或jss。

它还有一个简单的控件来输出css / js文件集链接。控件将附加一个带有文件哈希的查询字符串,这样可以保证文件内容正确。

这意味着您可以直接使用IIS提供munged文件。然后,您可以利用内核模式缓存。也意味着您不必担心http标头支持的错误实现:

  • 的ETag
  • 到期
  • 上次修改
  • 如果-匹配
  • 如果-无 - 匹配
  • 如果-Modified-Since的
  • 如果未改性的-由于
  • 除非 - 修改 - 自

最好将所有js / css文件压缩为整个网站的一个巨大文件,然后动态地为页面动态提供所需的js / css文件。浏览器可以缓存一个巨大的文件,然后再也不用担心再次从您的网站下载css / js。

答案 5 :(得分:0)

您可以使用HTTP请求组合器来指定常见css文件列表,这些文件应作为单个缩小的css文件提供给浏览器。这将减小尺寸并显着降低请求数量。

在.Net上下文中工作的一个很好的例子: http://www.codeproject.com/KB/aspnet/HttpCombine.aspx

答案 6 :(得分:0)

我写了一些关于此的博客文章。见Supercharging CSS in PHP。即使它是为PHP编写的,原则也是通用的。

基本上,您的目标是减少外部HTTP请求。您可以结合使用CSS文件和/或对CSS文件进行版本控制以及使用远期的Expires标头来实现此目的。

最后,如果客户接受它,你应该总是GZip CSS(和Javascript)。