为了提高性能,是否使用一个或多个css文件?

为了提高性能,是否使用一个或多个css文件?,css,performance,Css,Performance,我想知道是否最好为CSS文件创建一个或多个文件 我经常看到网站上有大量的css文件,但它只能使用一个大文件 您的建议是什么?就性能而言,您最好只使用一个文件,因为它会导致一个连接和对服务器的请求(从时间上看,这些操作往往是昂贵的) 这就是框架存在的原因,它将每个页面的所有CSS(和JavaScript)文件合并在一起,并在一个请求中为它们提供服务。好吧,和Yahoo一样s:使用一个来减少HTTP请求的数量。不同的HTTP请求几乎不是这里的瓶颈,文件大小最终是瓶颈。最好尽可能多地分割内容的原因是,

我想知道是否最好为CSS文件创建一个或多个文件

我经常看到网站上有大量的css文件,但它只能使用一个大文件


您的建议是什么?

就性能而言,您最好只使用一个文件,因为它会导致一个连接和对服务器的请求(从时间上看,这些操作往往是昂贵的)


这就是框架存在的原因,它将每个页面的所有CSS(和JavaScript)文件合并在一起,并在一个请求中为它们提供服务。

好吧,和Yahoo一样s:使用一个来减少HTTP请求的数量。

不同的HTTP请求几乎不是这里的瓶颈,文件大小最终是瓶颈。最好尽可能多地分割内容的原因是,如果您想更改站点的某种感觉,比如说,所有标题的字体,那么您只需要更改一个文件/设置,并希望该文件尽可能小


对于大型且兼容的CSS,我会为所有不同的东西制作不同的CSS文档,如布局、类的处理等,另一个优点是,如果有多个页面需要与主页稍有不同的外观,它们只需链接到另一个CSS文件,而不必链接到完全不同的CSS文件,他们中的大多数人共享文件。

多个文件对组织有好处,但向服务器发出一个请求肯定是最好的。如果你观看谷歌的性能视频,他们会建议尽可能少的HTTP请求。每个HTTP请求在握手中都有开销,如果您希望您的站点速度更快,则不希望产生这种开销

查看这个很棒的脚本,它将把您的多个CSS/JS文件转换为一个文件:


对于页面的最快下载和呈现,Yahoo性能规则是正确的。您需要尽可能少的http请求


然而,在许多网站上,拥有一个大型CSS文件并不方便。最好的办法是将CSS组织成任意多的文件,然后使用服务器端脚本连接这些文件。GZIP'ing这个文件也很有用。

您应该使用多个css文件,而不是使用一个大文件。它可以帮助您在维护站点的同时,在不同的css中使用不同的定义(classe或id名称),否则将采用稍后声明的定义

但出于性能原因,您可以使用一个大文件,因为, 一个大的CSS文件可以减少HTTP请求,从而提高性能


几个较小的文件可以更容易地组织,这将使开发和维护更便宜、更容易。

不要使用太多不同的css文件,或者至少尝试将它们放在其他域中,以加快通过浏览器下载它们的速度。我还建议您使用。

拥有一个CSS文件不仅有助于处理HTTP请求,还可以提供更好的压缩效果(压缩一个大文件应该比压缩多个小文件效果更好)。

如果性能对您很重要

然后

如果你的站点很小,但是流量很大,那么就选择一个css文件

若网站是小型个人或商业网站,但流量较少,那个么就转到多个css


如果CSS文件的可维护性对您很重要

然后

如果你的站点很小,不同的页面较少,那么就选择一个css文件

如果站点很大,那么就选择多个css



CSS文件的HTTP请求不会对小型站点的性能产生太大影响。

我的策略很简单。 我在CSS文件和JS文件中将生产与开发分开。 在开发中,我可以有多达20个JS文件和10个CSS文件,组织非常灵活和简单,我总是知道所有东西都在哪里

在生产过程中,所有文件都被缩小为1js和1css文件,在开发过程中总是会进行更改,然后“分阶段”进入生产过程,因此我获得了应用程序的可维护性和生产过程中的性能

我使用Yahoo minifier缩小我的文件,但你可以使用任何方便的工具。

权衡一下

一个CSS文件的优点

  • 减少延迟。每个可下载组件都有少量延迟。更少的文件=>更少的延迟
  • 单点压缩
多元文化的优势

  • 更改一个文件不需要重新下载所有css。其他css可以从缓存中提供
  • 结构
  • 只下载你需要的。例如,如果页面上没有任何表单,则不需要下载forms.css

我修复了一个打字错误和一些大小写。我希望你不介意。至于答案。。。绝对正确。:)@格特-我总是欢迎这样的更正。是的,一旦所有css文件都被加载并缓存到浏览器中,它只需要加载实际上已经改变的小文件,而不是加载所有内容。事实上,这是我一直忽略的一件事,它也不需要在更新后或者站点的某些部分使用稍微不同的CSS时重新加载很多内容。我这样做只是为了组织,但我通常会把我的CSS分为frame.CSS(placeing)colors.CSS、font.CSS等等。我不同意这一点。在大多数情况下,HTTP连接的开销远远超过正在下载的CSS的数量。即使是一个30k的css文件,也会将总下载时间的50%视为请求开销,将其拆分只会增加这一开销。+1。这就是我所采用的方法,它是两个世界中最好的,具有良好的可维护性/组织性和良好的性能。我对此唯一的例外是从Google服务器中提取jQuery,因为它通常已经缓存在人们的机器上了。要记住的一件事是在用户到达之前缩小文件。缩小页面负载通常是非常困难的