计算机系统应用教程网站

网站首页 > 技术文章 正文

使用DataURI 加快小图像的加载时间

btikc 2024-10-16 08:18:08 技术文章 5 ℃ 0 评论

Data URI scheme 是什么 ???



Data URI scheme 是在 RFC2397 中定义的,目的是将一些小的数据,直接嵌入到网页中,从而不用再从外部文件载入。减少对 HTTP 的请求次数。达到优化网页的效果。

base64 后面那一串字符,其实是一张图片,将这些字符串复制粘贴到浏览器的中打开,就能看到图片了

DataURI 允许在HTML文档中嵌入小文件,可以使用 img 标签或 CSS 嵌入转换后的 Base64 编码,减少 HTTP 请求,加快小图像的加载时间。

经过Base64 编码后的文件体积一般比源文件大 30% 左右。

// Base64 在CSS中的使用

.box{

background-image: url("data:image/jpg;base64,/9j/4QMZR...");

}

// Base64 在HTML中的使用

<img src="data:image/jpg;base64,/9j/4QMZR..." />

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

data 表示取得数据的协定名称;

image/png 是数据类型名称;

base64 是数据的编码方法,逗号后面就是这个image/png文件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图片数据

Data URI scheme 的优缺点



优点:

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

缺点:

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

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表