好吧所以我知道我可以将图像转换为base64,然后将其添加到我的html中。 base64的问题在于,它产生的数据比我的png图像文件大33%,这是一个最大压缩的300KB css精灵。
有没有办法在不使用base64的情况下传输图像数据,然后将其组装成客户端上的图像?
我正在考虑传输十六进制图像数据,然后使用javascript将其转换为base64。似乎可能,但非常多余,因为它会立即从base64解码回来,只是为了显示。
有什么想法吗?
答案 0 :(得分:0)
我刚刚做了一些测试来检查文件大小,我发现没有显着差异。
sizeof(gzip(index.html + sprite.png))= 301KB
sizeof(gzip(index_inline_b64_sprite.html))= 302KB
虽然base64文本比png本身大约33%,但一旦gzip它似乎没有任何显着差异。
一旦你认为任何解决方案都可能有严重的跨浏览器,甚至可能存在奇怪的十六进制安全问题被附加到html文件,在我的情况下,它似乎是一个更好的解决方案,只需坚持使用base64。
还要感谢Barmar指出html中的ascii hex会大得多,我起初并没有意识到这一点。