如何减少css http请求?
1个大型css文件
或一个导入所有其他css的css文件
是这样吗?
使用此
有什么好处@import url('/css/typography.css'); @import url('/css/layout.css'); @import url('/css/color.css');
答案 0 :(得分:11)
1个大型css文件 或一个导入所有其他CSS的css文件 这是一样的吗?
否,因为客户端仍然需要加载每个CSS文件(每个都有一个HTTP请求)
了解有关减少HTTP请求的更多信息的链接:
如果您使用的是Firefox,我强烈推荐Firebug,它提供了一个包含HTTP请求详细信息的视图。
修改强>
正如flybywire在评论中指出的那样:YSlow是一个Firefox扩展,它与Firebug集成以分析网页性能
我会先尝试3件容易的事情:
大部分内容也适用于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标头支持的错误实现:
最好将所有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)。