🎶 Sym - 一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)平台

📕 思源笔记 - 一款桌面端笔记应用,支持 Windows、Mac 和 Linux

🎸 Solo - B3log 分布式社区的博客端节点,欢迎加入下一代社区网络

♏ Vditor - 一款浏览器端的 Markdown 编辑器

CSS sprites 的优点及如何使用?

2019-01-01

回答

CSS sprites 将多张图片合并为一张图片,从而减少浏览器对 HTTP 的请求数量,进而减少网页的加载时间。即使在 HTTP/2 协议下,这依旧可以减少网页的加载时间。

在 HTTP/1.1 中,每个 TCP 连接只允许一个请求。现代浏览器虽然可以打开多个(2-8)并行的 TCP 连接,但连接数量依旧有限。

HTTP/2 允许浏览器和服务器之间的多个请求在一个 TCP 连接上进行复用。 这意味着 TCP 连接被更有效的使用了:同一个页面在打开和关闭 TCP 连接的次数被减少了,客户端和服务器之间的延迟也被减少了。这样一来,数十个图片就可以在同一个 TCP 连接中并行加载了。

根据基准测试结果,尽管 HTTP/2 比 HTTP/1.1 要快 50%,但在大多数情况下,多个图片合并为一张图片的加载速度依旧要快于多个未合并的图片的加载。

想要在 CSS 中使用 sprites 需要用到 CSS 中的 background-imagebackground-positionbackground-size 属性,他们可以通过改变元素背景的图片、位置及大小来达到预期的效果。

加分回答

返回总目录

每天 30 秒


欢迎注册黑客派社区,开启你的博客之旅。让学习和分享成为一种习惯!

3 评论
hanhuizhu • 2019-07-19
回复 删除

HTTP1.1 不是默认keep-alive,可以复用TCP 链接吗?

Vanessa • 2019-07-19
回复 删除

keep-alive 后 TCP 连接不会关闭,下个请求会继续复用该连接。

hanhuizhu • 2019-07-19
回复 删除

嗯,多路复用是很高的提升点