提供小型静态图像的最佳方法是什么?

时间:2010-10-28 18:54:44

标签: java javascript python image

现在我基于64编码它们并使用数据uris。这个想法是,这将以某种方式降低浏览器需要做出的请求数量。这个桶装水了吗?

一般来说,提供图像的最佳方式是什么? DB,来自FS,S3?

我最感兴趣的是基于python和java的答案,但欢迎所有人欢迎!

4 个答案:

答案 0 :(得分:13)

我肯定会看看CSS Image Sprites,体面的写作herehere

这个概念非常简单,将您的图像合二为一,只显示您需要的切片作为CSS背景。这使您可以将来自许多图像的HTTP请求数量减少到一个或多个(根据需要将精细图像中的小图像分组)并且要维护的图像更少,CSS中只有一些背景坐标。

此外,与任何静态资源make sure your cache headers are set correctly一样,客户端也不会不必要地获取它。

答案 1 :(得分:3)

Nicholas C. Zakas编写了tool,可以更轻松地在css中使用数据URI,还包含与IE6 / 7兼容的修补程序:

  

CSSEmbed还支持MHTML模式   使IE6和IE7兼容   使用内部图像的样式表   类似于数据URI。

答案 2 :(得分:2)

  

现在我基于64编码它们并使用数据uris。这个想法是,这将以某种方式降低浏览器需要做出的请求数量。这个桶装水了吗?

这绝对是一个坏主意:won't work in IE < 8;它使服务的数据量增加了33%;它使图像完全不可缓存。

我会说你应该将图像作为正确的图像资源提供 - 无论是作为单独的文件,还是像@Nick建议的CSS精灵,都将取决于它们的数量和大小。

答案 3 :(得分:1)

数据网址肯定会减少对服务器的请求数量,因为浏览器不必在单独的请求中询问像素。但并非所有浏览器都支持它们。你必须做出权衡。