background:url(#)的性能问题

很久之前写了使用 background:url(#) 解决 IE bug,原理是请求一张不存在的图片,不过写法有些问题。

写为

background:url(#)  

会增加一个http请求,比如当前css的URL为

http://imgcache.qq.com/qzonestyle/project/css/xxx.css  

则会多请求一次

http://imgcache.qq.com/qzonestyle/project/css/xxx.css#  

和以下类似(详见解决IE6.0.2800压缩HTTP数据Bug之草记

http://imgcache.qq.com/qzonestyle/project/css/xxx.css?t=20100710.css

这样写可以避免这个问题

background: url(iesucks);

——————- 亡羊补牢的分隔线 2010-7-17 ——————-

上面的测试过程有些问题,经过用真实环境重新测试这样搞效果更差,若调用该css的页面地址是

http://www.99css.com/

则会先请求

http://www.99css.com/iesucks

之后301转向至

http://www.99css.com/iesucks/

改用透明图片不太甘心,不如变态一点,直接调用该css本身,因为css已经被下载并缓存了

background: url(http://imgcache.qq.com/qzonestyle/project/css/xxx.css);