2009-12-01 47 views
3

我一直有“CSS黑客”与“条件评论”论点足够多的时间最近,我想我会把这个问题提出堆栈溢出社区。IE条件注释会减慢页面加载吗?

<!--[if IE]> 
<link type="text/css" rel="stylesheet" href="ie-specific.css" /> 
<![endif]--> 

使用IE条件注释的主要论点似乎是您要添加的每个页面加载额外的HTTP请求,从而减慢你的页面的显示。 没有能够找到的是任何现实世界的指标,无论是证明还是反驳这个陈述。撇开多个样式表与一个样式表的维护论点(尽管这本身是一个有效的讨论),这里有人做过任何测试,以确定使用条件注释给出的减速度有多少,或者能够将我指向任何其他人收集的统计数据?

回答

7

这不是真的是关于条件注释本身,它就像条件编译。

的IE浏览器将看到您的网页,包括

<link type="text/css" rel="stylesheet" href="ie-specific.css" /> 

(额外处理的一点点评估意见的条件)。

非IE浏览器只会在那里看到评论。

所以唯一潜在的性能影响是IE浏览器需要评估条件注释条件(这将会被忽略),然后会包含另一个CSS文件。当然,其他浏览器只是看到通用文件,并完全忽略评论。

接下来的问题是服务IE的优缺点,例如5Kb符合标准的CSS文件,然后是2Kb“黑客”文件,其他人只能得到5Kb文件; vs为每个人提供一个7Kb文件,其中包含狡猾的CSS。根据各种因素,包括网络速度和延迟,文件大小,整个页面上使用的资源数量等等,这可能会或可能不会对IE情况下的性能产生显着影响(这无疑会更快对于非IE用户代理)。

与所有的性能问题,你必须配置文件在您的环境代码,看看影响是什么 - 但作为一般准则我期望的影响可以忽略不计的IE浏览器,一个小的性能提升对于所有其他浏览器,以及能够在实际文件中写入“正确”CSS的模糊感,然后分别修复IE。

+0

好吧,Andrezej。谢谢。 – Scottie 2009-12-01 15:25:48