php中%3ch1%3e是什么意思,【已解决】url-loader中的DataUrl的含义

折腾:

期间,需要去搞清楚

url-loader中的DataUrl指的是啥。

what is DataUrl

【总结】

(0)定义

DataUrl=Data URL=地址前缀为data:的URL

允许内容创建者嵌入小的文件到文档中。

(1)语法

是:data:[][;base64],

mediatype:比如’image/jpeg’,默认为:text/plain;charset=US-ASCII

比如:data:,Hello%2C%20World!

Simple text/plain datadata:text/plain;base64,SGVsbG8sIFdvcmxkIQ%3D%3Dbase64-encoded version of the abovedata:text/html,%3Ch1%3EHello%2C%20World!%3C%2Fh1%3EAn HTML document with

Hello, World!

data:text/html,

An HTML document that executes a JavaScript alert. Note that the closing script tag is required.

background-image: url(“data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAIAAAA7ljmRAAAAGElEQVQIW2P4DwcMDAxAfBvMAhEQMYgcACEHG8ELxtbPAAAAAElFTkSuQmCC”);

(2)工具

对于把数据编码为base64的话,有很多工具,比如:

Linux类系统中:uuencode -m input_file_name remotename

输出:begin-base64 664 test

YSBzbGlnaHRseSBsb25nZXIgdGVzdCBmb3IgdGV2ZXIK

====

js中的话,可以使用API:

php中的base64编码:$ php -r “echo base64_encode(file_get_contents(‘check.png’));”

(3)限制

而对于DataUrl的最大值的限制,不同浏览器也不太一样:

IE7:不支持DataUrl

Opera 11:65K

Explorer 8:仅限制图像和css等文件的大小

IE8:32KB

IE9:文件最大限制为4GB

(4)作用

DataUrl的其中一个作用是:

通过把本来应该用http链接的方式去加载网络上的图片的方式,变成本地直接加载dataUrl了,从而使得:

减少了Http的请求次数,提高网页加载速度和性能

(5)用法和场景

典型的使用场景是:

对于一个很小的图片,才把图片的数据转换为base64,写成DataUrl的方式

比如某个很小的红色对勾的图片:

一般的写法是:check.png%E2%80%9D

写成DataUrl的方式就是:png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAIAAAA7ljmRAAAAGElEQVQIW2P4DwcMDAxAfBvMAhEQMYgcACEHG8ELxtbPAAAAAElFTkSuQmCC%E2%80%9D

正因此,对于Webpack中url-loader中,才往往会加上limit的参数,比如:{test: /\.(png|jpg)$/, loader: ‘url-loader?limit=8192’} // inline base64 URLs for <=8k images, direct URL

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值