页面图片渲染的常用做法是 直接在 img 标签内 给 src 附一个 url 地址,交由浏览器去下载、缓存、渲染图片,如下图:
但有时后端返回的是图片的二进制流,如验证码这种随机生成的图片,同时图片的二进制流还是经过Base64加密后的。
处理办法:
使用 Data URI scheme
Data URI scheme是在RFC2397中定义的,目的是将一些小的数据,直接嵌入到网页中,从而不用再从外部文件载入。
如下格式:
$("#captcha").attr("src", "data:image/jpg;base64,"+result.img)
其中 captcha
是 img
标签的id,result.img
是后端返回的经过base64加密后的二进制流。逗号后边是数据流。
目前,Data URI scheme支持的类型有:
data:,文本数据
data:text/plain,文本数据
data:text/html,HTML代码
data:text/html;base64,base64编码的HTML代码
data:text/css,CSS代码
data:text/css;base64,base64编码的CSS代码
data:text/javascript,Javascript代码
data:text/javascript;base64,base64编码的Javascript代码
data:image/gif;base64,base64编码的gif图片数据
data:image/png;base64,base64编码的png图片数据
data:image/jpeg;base64,base64编码的jpeg图片数据
data:image/x-icon;base64,base64编码的icon图片数据