Base64 编码
Base64 编码是采用 64 个基本的 ASCII 码字符,对数据重新编码。 把 3 个 8 位的字节(3 * 8 = 24)转化为 4 个 6 位的字节(4 * 6 = 24),并在 6 位的前面补两个 0 ,形成 8 位一个字节的形式。如果剩下的字符不足 3 个字节,则用 0 填充,输出字符使用 ‘=’,因此编码后输出的文本末尾可能会出现 1 或 2 个 ‘=’。
从以上编码规则可以得知,通过 Base64 编码,原来的 3 个字节编码后成为 4 个字节,即字节增加了 33.3%,数据量相应变大。所以 20M 的数据通过 Base64 编码后大小改为 20M*133.3%=26.67M。
用Base64的来呈现图片的有什么优势呢?
-
减少 http 网络请求:
网页上的图片资源如果采用 http 形式的 url 的话都会额外发送一次请求,网页发送的 http 请求次数越多,会造成页面加载速度越慢。而采用 Base64 格式的编码,将图片转化为字符串后,图片文件会随着 html 元素一并加载,这样就可以减少 http 请求的次数,对于网页优化是一种比较好的手段。
-
不会造成跨域请求的问题。
-
没有图片更新要重新上传,不会造成清理图片缓存的问题。
不足之处
增加了CSS文件的尺寸,造成数据库数据量的增大,IE6、IE7并不支持。