base64的利与弊
图片的 base64 编码就是可以将一副图片数据编码成一串字符串,使用该字符串代替图像地址。
将图片转换为base64编码最常见的应用应该就是在将网页中的一些图片转换为base64编码可以实现网页图片在网速不好的时候先于内容加载和减少HTTP的请求次数来减少网站服务器的负担。
图片转换成base64有两大好处
1.主要:减少了HTTP请求
我们的网站采用的都是HTTP协议,而HTTP协议是一种无状态的链接,就是连接和传输后都会断开连接节省资源。此时解决的方法就是尽量的减少HTTP请求,此时base64编码可以将图片添加到css中,实现请求css即可下载下来图片,减少了在此请求图片的请求。当然减少HTTP请求次数的方法还有很多,如css sprite技术,将网页中的小图片拼在一张大图片中,下载时只需要一次完整的HTTP请求就可以,减少了请求次数。
2.提前加载图片的应用
把css中的图片使用成base64编码的,css是在html头部引用的,要优先于下面的内容被加载,所以在网速不好的时候就会出现先加载出base64图片。
图片转换成base64有两大缺点
使用 Base64 不代表性能优化 使用 Base64 的好处是能够减少一个图片的 HTTP 请求,然而,与之同时付出的代价则是 CSS 文件体积的增大。 CSS 文件的体积直接影响渲染,导致用户会长时间注视空白屏幕。HTML 和 CSS 会阻塞渲染,而图片不会。
页面解析 CSS 生成的 CSSOM 时间增加 Base64 跟 CSS 混在一起,大大增加了浏览器需要解析CSS树的耗时。其实解析CSS树的过程是很快的,一般在几十微妙到几毫秒之间。
图片转换成base64体积到底是增大了还是缩小了
Base64图片编码原理Base64编码要求把3个8位字节(38=24)转化为4个6位的字节(46=24),之后在6位的前面补两个0,形成8位一个字节的形式。 如果剩下的字符不足3个字节,则用0填充,输出字符使用’=’,因此编码后输出的文本末尾可能会出现1或2个’=