55

我正在考虑为我正在开发的网站使用 base64 编码图像以优化加载时间。

无论如何,在我开始之前,我想知道:这样做的优点和缺点是什么?

目前,我没有看到任何缺点,但我也注意到它不是一种经常使用的技术,这让我怀疑我是否没有错过什么。

谷歌搜索主题后,我没有发现任何明确的内容,所以我决定在这里问。

4

4 回答 4

61

它仅对非常小的图像有用。Base64 编码文件比原始文件大。优点在于不必打开另一个连接并向服务器发出 HTTP 请求以获取图像。这种优势很快就会消失,因此只有大量非常小的单个图像才有优势。

于 2012-07-31T08:47:44.823 回答
14

符合 MIME 的 Base64 编码二进制数据的实际长度通常约为原始数据长度的 137%,尽管对于非常短的消息,由于标头的开销,开销可能要高得多。非常粗略地说,Base64 编码的二进制数据的最终大小等于原始数据大小的 1.37 倍 + 814 字节(对于标头)。

换句话说,解码数据的大小可以用这个公式来近似:

bytes = (string_length(encoded_string) - 814) / 1.37

资料来源:http ://en.wikipedia.org/wiki/Base64#MIME

于 2012-07-31T08:50:16.447 回答
7

这篇文章中已经提到了以下一些缺点,在网站上使用内联/base64 图像比仅链接到硬文件要快多少?

  • 大多数形式的缓存都被打败了,如果经常查看图像,这可能会造成很大的伤害 - 例如,显示在每个页面上的徽标,通常可以由浏览器缓存。
  • 更多的 CPU 使用率。
于 2012-07-31T08:54:50.593 回答
4

HTML 页面的响应时间也会增加,因为图像在正常情况下会异步加载。即使图像加载较晚,您也可以开始看到文字。

如果仅在 CDN 中缓存媒体,则 CDN 的另一个优势将丧失

这种优势将会丧失。

于 2014-01-22T09:49:30.653 回答