51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

data:image/png;base64 什么意思有什么用

data:image/png
data: image/png; base64 用法详解 ( 作用,语法,优缺点 ){#articleContentId}

网页上有些图片的 src 或 css 背景图片的 url 后面跟了一大串字符,

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQAQMAAAC032DuAAAABlBMVEUAAAD///+l2Z/dAAAAAXRSTlMAQObYZgAAAAlwSFlzAAAOxAAADsQBlSsOGwAAABFJREFUKM9jYBgFo2AU0AsAAANwAAGRWmMdAAAAAElFTkSuQmCC

① 在 HTML 中使用 data URL (不建议这样使用)

<img alt='白眉大叔' src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQAQMAAAC032DuAAAABlBMVEUAAAD///+l2Z/dAAAAAXRSTlMAQObYZgAAAAlwSFlzAAAOxAAADsQBlSsOGwAAABFJREFUKM9jYBgFo2AU0AsAAANwAAGRWmMdAAAAAElFTkSuQmCC" class="avatar avatar-80 photo lazyload" height='80' width='80' data-src="https://www.baimeidashu.com/wp-content/uploads/2023/02/原版卡通头像-scaled-80x80.jpg" decoding="async" /><noscript><img alt='白眉大叔' src='https://www.baimeidashu.com/wp-content/uploads/2023/02/原版卡通头像-scaled-80x80.jpg' class='avatar avatar-80 photo' height='80' width='80' data-eio="l" /></noscript>				白眉大叔			</a>

② 在 CSS 中使用 data URL

body { 
      background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAIAAAA7ljmRAAAAGElEQVQIW2P4DwcMDAxA
      fBvMAhEQMYgcACEHG8ELxtbPAAAAAElFTkSuQmCC")
     };

③ 在 script 中使用 data URL

   _captchaImage() {
		captchaImage().then(res => {  //请求接口
			if (res.code == 200) {
				this.codeUrl = 'data:image/gif;base64,' + res.img; // 拼接请求回来的数据
				this.formModel.uuid = res.uuid;
			   }
		   });
		},

3. Data URI scheme 的优缺点

优点:

减少HTTP请求数,没有了TCP连接消耗和同一域名下浏览器的并发数限制。对于小文件会降低带宽。虽然编码后数据量会增加,但是却减少了http头,当http头的数据量大于文件编码的增量,那么就会降低带宽。 对于HTTPS站点,HTTPS和HTTP混用会有安全提示,而HTTPS相对于HTTP来讲开销要大更多,所以Data URI在这方面的优势更明显。可以把整个多媒体页面保存为一个文件。

缺点:

  1. 无法被重复利用,同一个文档多次被应用到同一内容中,数据被大量增加,消耗了下载时间。
  1. 无法被独自缓存,其包含文档重新加载时,它也要重新加载。
  2. 耗时,客户端需要重新解码和显示,增加消耗。
  3. 不支持数据压缩,base64编码会增加1/3大小,而urlencode后数据量会增加更多
  1. 不安全,不利于安全软件的过滤,同时也存在一定的安全隐患。

(1)base64格式的文本内容较多,存储在数据库中增大了数据库服务器的压力;
(2)网页加载图片虽然不用访问服务器了,但因为base64格式的内容太多,所以加载网页的速度会降低,可能会影响用户的体验。
(3)base64无法缓存,要缓存只能缓存包含base64的文件,比如js或者css,这比直接缓存图片要差很多,而且一般HTML改动比较频繁,所以等同于得不到缓存效益。

赞(3)
未经允许不得转载:工具盒子 » data:image/png;base64 什么意思有什么用