是否每页创建单独的CSS文件以加快加载时间过度杀伤?

时间:2010-08-01 23:59:53

标签: css

我一直在使用Google PageSpeed来改善网站的效果。其中一个建议是在我的应用中消除未使用的CSS。虽然很多CSS都没有用于给定的页面,但是在应用程序中使用了它。

这里有什么正确的方法?我正在考虑为常见CSS创建一个基本CSS文件,然后为每个单独的页面分隔文件。幸运的是,没有那么多页面。这有点矫枉过正吗?还有更好的方法吗?

这是一个Rails应用程序,我正在使用asset_packager来缩小我的CSS和Javascript

谢谢! 萌

5 个答案:

答案 0 :(得分:7)

它不会加速您的应用程序,因为您将添加新的http请求,而如果您将所有CSS打包到一个文件中,该文件将保留在缓存中,您将不必具有http请求它用于后续页面。

Google PageSpeed只是意味着您不应该在应用程序的任何位置提供您不使用的样式,或者只提供用户无法访问的页面,例如管理区域。

答案 1 :(得分:1)

正如这里的人提到的,绝对不是。您只需添加新的http请求即可。你应该记住,pagespeed可能总是会显示你在给定页面上有未使用的css,但这不是一个大问题。

看看其他推荐页面速度显示如启用压缩,优化图像(如果你还没有使用css sprites)等等。

另请参阅yahoo best practices以加快您的网站速度。

答案 2 :(得分:0)

这取决于文件的大小和人们使用您网站的方式。如果文件开头不大并且人们经常会访问许多不同的页面,那么拥有特定于页面的css文件将失去缓存的好处,这通常会获得更多的好处。

答案 3 :(得分:0)

下载另一个CSS文件的额外HTTP请求的开销大大超过了主CSS文件中额外几KB的开销。

答案 4 :(得分:0)

我认为最好将样式表组合在一起。例如,您可能有一个基本css,它为您的页面提供布局。然后你可能有一个主题css,提供颜色,图像,边框 - 视觉元素。然后,您可能有单独的UI组件的单独css文件,例如popup.css,calendar.css等。

base.css
主题blue.css
主题 - 蓝 - popup.css
主题 - 蓝 - calendar.css

这种方法可以更轻松地管理您的样式(如果需要,可以切换它们)。但是,与您的问题更相关的是,您现在可以指定站点上每个页面所需的样式表。现在,如果用户仅访问您网站的主页,并且主页没有弹出窗口或日历,则他们没有下载他们未使用的组件的样式。当他们进一步进入网站时,他们将在需要时获得所需的样式表。