2010-07-28 128 views
3

我今天,思想为我联系网页3个外部.css文件:“这是太多HTTP请求” 我不知道是否应该使用 php将这些文件合并为一个?或者,我应该只用<style>标签将全部三个导入 <head>?我在interwebs上发现了一个相关链接: Suture CSS or JavaScript Files to Reduce HTTP Requests但我不认为它给出了充分的讨论。我应该将.css文件与php结合使用以减少http请求吗?

注意:我这个标签对JavaScript以及因为我相信它也适用于.js文件所以请注意如果您的回答仅适用于CSS或JavaScript

回答

3

我认为这是没有必要的。浏览器将只下载一次这两个文件。如果将它们添加到页面上的样式标记中,则每次加载此页面时都必须下载相同的内容。

除非您的网页/网站有很多每秒的访问,您将不再需要它。

这就是我想......

+0

所以你几乎觉得这种技术太挑剔和不谨慎,除非我正在制作一个非常高的交通网站(我不这么做)? – 2010-07-28 21:49:50

+0

我同意这感觉就像一个过早优化的情况。尽管将css和js文件合并(尤其是小文件)可以帮助用户降低页面负载,但除非您对页面进行配置,并且发现这是一个真正的瓶颈,否则这可能是不值得的。 – 2010-07-28 21:50:16

+0

我很尊重@CrociDB和@Matthew。任何基于Web的介质中最关键的瓶颈是I/O,更具体地说是HTTP请求。减少HTTP请求的总数可以证明是任何给定Web应用程序的最有效的速度优化。即使只有一个请求可能有可能削减从几百毫秒到非常长的全秒。对于CSS文件只下载一次,然后缓存在浏览器中的论点:你的第一印象很重要!如果第一次很快,那么以后会更快。 – Stephen 2011-01-25 16:15:52

3

我得到了,如果我不知道应该使用PHP将这些文件合并为一个?

通常是的,这不仅是因为HTTP请求数(通常只会发生一次,反正),而且还因为Internet Explorer不能more than 31 external style sheets on the same page处理的。

最好做一个缓存的方式,这样你就不必在每次CSS要求运行PHP。 This question有很多关于这个问题的优秀资源的指针。

或者我应该导入所有三成与标签?

号:它使样式未缓存的浏览器,并增加了每个请求大小。

+0

1。 – Stephen 2011-01-25 16:17:19

0

我用相结合的方法,使我可以只投放一个css和尽可能少的js文件成为可能。

通过使用媒体查询这是可能的,并且通过使用体类选择,你可以在线添加即样式,而无需使用黑客打印和屏幕的风格组合成一个页面。

例如,在的main.css

@media screen { 
    p { [styles] } 
    ... 
} 
@media print { 
    p { [styles] } 
    ... 
} 

本文给出体类选择的概要:用于HTTP请求减少
http://misteroneill.com/improved-internet-explorer-targeting-through-body-classes/

+0

非常有用,但不幸与我目前的项目无关。我会保留这一个保留;-) – 2010-07-30 20:04:31