Data URL
Data URL,即前缀为 data: 协议的 URL,其允许内容创建者向文档中嵌入小文件。
Data URL 由四个部分组成:前缀(data:)、指示数据类型的 MIME 类型、如果非文本则为可选的 base64 标记、数据本身
sh
data:[<mediatype>][;base64],<data>
data:[<mime type>][;charset=<charset>][;<encoding>],<encoded data>目前支持的 <mime type> 有以下格式
data:,
data:text/plain,
data:text/html,
data:text/html;base64,
data:text/css,
data:text/css;base64,
data:text/javascript,
data:text/javascript;base64,
data:image/gif;base64,
data:image/png;base64,
data:image/jpeg;base64,
data:image/x-icon;base64使用时候,直接在<img> src 属性,或者在css中 url 直接使用
html
<img src="data:xxxxxxxxxxxx" />Data URL 的优缺点
优点
- 当访问外部资源很麻烦或受限时
- 当图片是在服务器端用程序动态生成,每个访问用户显示的都不同时。
- 可以减少网络请求(当图片的体积太小,占用一个HTTP会话不是很值得时)。
- 字符串编码方便传输存储。
缺点
- Base64编码的数据体积通常是原数据的体积4/3,也就是Data URL形式的图片会比二进制格式的图片体积大1/3。
- Data URL形式的图片不会被浏览器缓存,这意味着每次访问这样页面时都被下载一次。这是一个使用效率方面的问题——尤其当这个图片被整个网站大量使用的时候。
- 不能在客户端进行缓存。(如图片,只能通过css文件进行背景图片缓存)
- 渲染时需要base64解码,需要消耗cpu资源。
