我正在考虑为我正在开发的网站使用 base64 编码图像以优化加载时间。
无论如何,在我开始之前,我想知道:这样做的优点和缺点是什么?
目前,我没有看到任何缺点,但我也注意到它不是一种经常使用的技术,这让我怀疑我是否没有错过什么。
谷歌搜索主题后,我没有发现任何明确的内容,所以我决定在这里问。
它仅对非常小的图像有用。Base64 编码文件比原始文件大。优点在于不必打开另一个连接并向服务器发出 HTTP 请求以获取图像。这种优势很快就会消失,因此只有大量非常小的单个图像才有优势。
符合 MIME 的 Base64 编码二进制数据的实际长度通常约为原始数据长度的 137%,尽管对于非常短的消息,由于标头的开销,开销可能要高得多。非常粗略地说,Base64 编码的二进制数据的最终大小等于原始数据大小的 1.37 倍 + 814 字节(对于标头)。
换句话说,解码数据的大小可以用这个公式来近似:
bytes = (string_length(encoded_string) - 814) / 1.37
这篇文章中已经提到了以下一些缺点,在网站上使用内联/base64 图像比仅链接到硬文件要快多少?
HTML 页面的响应时间也会增加,因为图像在正常情况下会异步加载。即使图像加载较晚,您也可以开始看到文字。
如果仅在 CDN 中缓存媒体,则 CDN 的另一个优势将丧失
这种优势将会丧失。