我一直在使用Google PageSpeed来改善网站的效果。其中一个建议是在我的应用中消除未使用的CSS。虽然很多CSS都没有用于给定的页面,但是在应用程序中使用了它。
这里有什么正确的方法?我正在考虑为常见CSS创建一个基本CSS文件,然后为每个单独的页面分隔文件。幸运的是,没有那么多页面。这有点矫枉过正吗?还有更好的方法吗?
这是一个Rails应用程序,我正在使用asset_packager来缩小我的CSS和Javascript
谢谢! 萌
答案 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
这种方法可以更轻松地管理您的样式(如果需要,可以切换它们)。但是,与您的问题更相关的是,您现在可以指定站点上每个页面所需的样式表。现在,如果用户仅访问您网站的主页,并且主页没有弹出窗口或日历,则他们没有下载他们未使用的组件的样式。当他们进一步进入网站时,他们将在需要时获得所需的样式表。