SPDY协议是否消除了CSS精灵、合并JS和CSS文件的需求?

15

我一直在将CSS和JS文件合并。同样的,我也几乎总是将图片合并。我想知道,Google的SPDY协议通过支持多路复用连接是否能够消除这一需求呢?我不是在询问编译/压缩,而是在问传统HTTP协议中由额外HTTP请求带来的开销问题。

3个回答

15

SPDY允许浏览器同时获取所有图像,这有助于提高性能。如果浏览器带宽足够,这已经足以使SPDY与使用雪碧图的HTTP相比速度更快。

但是,对于绝对性能而言,雪碧图仍然更优。

通常情况下,当你将5到6张图片合并时,生成的图片大小明显比单个图片的大小之和要小得多。具体效果取决于所使用图片的类型和数量。css技巧网站上有一个示例:http://css-tricks.com/css-sprites/


这是有意义的,因为每个单独的文件也有头部负载(不仅仅是协议)。 - Brady Moritz
我同意,在许多情况下将图像合并成雪碧图可以减少负载。然而,由于SPDY正在压缩标题而不是发送重复内容,因此非合并的图像可以通过并行加载来降低用户感知的加载时间。这样,它们会在完成时逐个出现,而不是同时出现。 - jon_wu

2
即使使用了SPDY的多路复用技术,减少请求的数量仍然有可能提高性能。

5
所以,这只是猜测吗?需要记住的是,HTTP 请求很昂贵,因为它们需要更多的连接。在 SPDY 中,我们可以在单个连接中完成所有操作。 - Tower
1
连接并不是唯一的成本。 - Yuliy
rFactor:HTTP并不真正需要更多的连接(毕竟有流水线)。 - Julian Reschke

0
不要在外部样式表中使用CSS精灵 - 外部样式表中的资源显然只有在下载外部样式表之后,并且仅当规则与元素匹配时才会被发现。由于SPDY具有多路复用功能,因此它们提供的减少HTTP请求的优势在这种情况下是不必要的。因此,CSS精灵只会使其变慢。

https://www.chromium.org/spdy/spdy-best-practices


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接