我正在考虑为我正在使用的网站使用base64编码图像来优化加载时间。
无论如何,在我开始之前,我想知道:这样做的优点和缺点是什么?
目前,我没有看到任何不利因素,但我也注意到这不是经常使用的技术,这让我想知道我是不是错过了什么。
在谷歌主题后我没有找到任何清楚的东西所以我决定在这里问。
答案 0 :(得分:41)
它仅对非常小的图像有用。 Base64编码的文件比原始文件大。优点在于不必打开另一个连接并向服务器发出HTTP请求以获取图像。这种好处很快就会消失,因此对于大量非常小的单个图像来说只有一个优势。
答案 1 :(得分:12)
符合MIME的Base64编码二进制数据的实际长度是 通常约为原始数据长度的137%,但非常短 消息由于开销的原因,开销可能会高得多 头。非常粗略地说,Base64编码的二进制数据的最终大小是 等于原始数据大小的1.37倍+ 814字节(用于标题)。
换句话说,解码数据的大小可以用这个公式近似:
bytes = (string_length(encoded_string) - 814) / 1.37
答案 2 :(得分:4)
本文中How much faster is it to use inline/base64 images for a web site than just linking to the hard file?
已经提到了以下一些缺点答案 3 :(得分:3)
HTML页面的响应时间也会增加,因为图像在正常情况下加载asyn。即使图像加载较晚,您也可以开始看到文字。
如果只在CDN中缓存媒体,CDN的另一个优势就会丢失
这种优势将会丧失。