css中有太多背景图像会影响性能吗?

时间:2009-06-02 00:30:53

标签: css performance background-image css-sprites

有些用户报告说我的网站太慢了 我认为css中的背景图像可能是可能的 罪魁祸首

我有一个使用自定义构建系统的网站 连接所有css,压缩它们(yui压缩器),制作css sprites 自动(smartsprites),我最终得到一个9kb的CSS 整页,这包括背景图像的所有CSS,最后是它们 是60左右(几个去同一个精灵不知道有多少)

我想知道浏览器的默认行为 是根据需要下载图像(当它们与选择器匹配时) 或者全部下载。

现在firefox中的firebug似乎暗示它们都被下载了。 你会建议我使用什么技术来避免这个问题,或者 减轻它。

编辑: 我误读了firebug,正在下载的图像属于lightview 隐藏但背景图像与dom匹配。

5 个答案:

答案 0 :(得分:2)

不,实际上将它们放在CSS中比放在标记中更好。

图像调用不会阻止页面,并且随着图像的加载,它们将在页面上呈现,因此总体而言,最好通过CSS加载它们。更不用说这种设计也更灵活。

(不言而喻,每个图像都会占用带宽和额外的HTTP请求)

答案 1 :(得分:1)

默认浏览器行为是一次下载两个项目(即2个http请求),如果您认为有很多图像为images.yoursite.com等图像创建子域,您将开始看到浏览器提出并行请求,您可以看到性能方面的一些改进

答案 2 :(得分:1)

(侧面话题。没有真正回答你的问题。但可能有趣甚至相关。)

我认为另一个可能的罪魁祸首是“有些用户”会觉得你的网站“太慢了”。 (也许它更像是一个精神崩溃而不是Stack Overflow的东西?这些用户认为这是一个快速的网站?他们可以举例吗?他们的连接和计算机有多快?他们在哪里,你的服务器在哪里?什么完全是慢吗?注册过程?用高清观看视频?滚动窗口?加载Firefox?毕竟,它是人类......最好的吗?)

答案 3 :(得分:0)

也许仔细看看你发送的图片,特别是如果有很多图像被编译成一个“精灵”图像。

可能发生的事情是您指向的图像非常大。当然,它应该只加载一次(精灵方法的好处),但如果它是几百KB,它肯定会导致一些性能问题。

答案 4 :(得分:0)

有一个很棒的firefox插件叫做Yslow,可以为你提供一些有关性能优化的有用信息。它会向您显示检测到的性能问题,并为您提供指向改进的文章的链接。 http://developer.yahoo.com/yslow/

有关最佳做法的一些信息 http://developer.yahoo.com/performance/rules.html

相关问题