最近Data URI似乎热了起来,特别是从淘宝UED上发了一篇《 Data URI小试 ——
在旺旺点灯(JS)上的应用 》后,陆续出现这方面的文章。看到不少人提到Data
URL时都只是提到了优点,我也好奇了一把,借这机会更全面了解了下。
说到Data
URI的优点,自然少不了“减少链接数”,把图片转为Base64编码,以减少图片的链接数。我们先想当然一下,同样一张图片,如果不用发起一个下载请求,打开速度是会更快的。但是,有几个问题需要关注下:
- 图片始终是要下载的,那么下载一张图片的速度快还是下载一堆编码快?
- 浏览器对图片的显示,处理效率哪个更快?
- 图片的缓存问题
做了几个Demo,我们来看对比下:
多小图的处理对比: Demo1 DataURI ;
Demo2
img
单图处理对比: Demo1 DataURI ;
Demo2
img
多刷新几次,可以发现,使用Data URI方式的Demo在渲染时会比不使用
多消耗53%左右的CPU资源,内存多出4倍左右,耗时平均高出24.6倍 。由此可见,使用Data
URl方式还是需要更多的考量,在可接受的范围内适量使用。
有关Data URI的介绍可以看下《 data URI scheme 》和《 利用 Data
URL 加速你的網頁 》,里面提到的IE8以下浏览器不支持的问题,相应的解决方案可以看《 MHTML – when you need data: URIs in
IE7 and under 》,当然使用这种方法的代价就是为了兼容IE6\7,使代码量多出一倍;优点是可以被Cache和Gzip压缩。
在 CSS森林
下方使用了另一种兼容IE6\7的方式,有兴趣的同学可以找找。
分享到:
相关推荐
本文将深入探讨如何在dataURI中正确使用SVG,以实现高效、灵活的Web图形展示。 首先,了解dataURI的基本原理。dataURI是一种URL scheme,它允许在单一的URL内直接包含文件内容。其基本格式如下: ``` data:[][;...
### Data URI浅析 #### Data URI简介 Data URI是一种特殊的数据表示形式,它允许将小文件内嵌到超文本标记语言(HTML)、级联样式表(CSS)等文档中,而无需额外的HTTP请求。这种方式简化了资源加载过程,提高了...
Data URI Scheme是一种URI(统一资源标识符)方案,它允许在单个URI中包含资源的数据,而不是提供指向资源的地址。其基本格式如下: ```text data:[][;base64],<data> ``` 其中,`<mediatype>`是资源的MIME类型,...
`python_datauri`是一个这样的库,专为处理Data URI(数据URI)而设计。Data URI是一种在Web开发中用于内联嵌入小文件的机制,它可以将图像、文本等数据直接编码到HTML或CSS中,从而减少HTTP请求,提高页面加载速度...
模组npm i --save datauri命令行界面npm i -g datauri-cli使用datauri的工具NPM脚本古尔一个插件,用于将图像转换为嵌入式数据URI。 旨在用作的简单单一用途包装器。RUN 在datauri模块的顶部运行着许多grunt插件。 ...
>> > from datauri import DataURI >> > uri = DataURI ( [removed]VGhlIHF1aWNrIGJyb3duIGZveCBqdW1wZWQgb3ZlciB0aGUgbGF6eSBkb2cu' ) >> > uri . mimetype 'text/plain' >> > uri . charset 'utf-8' >> > uri . ...
Data URI和MHTML是两种在Web开发中用于嵌入资源的技术,它们可以帮助优化网页加载速度和性能,尤其是在处理小文件和图像时。然而,这两种方法都有其特定的优缺点和适用场景。 Data URI(Data URL Scheme)是一种在...
iconfont到datauri 用于将iconfont网站上的项目字体转为内嵌样式可用的datauri编码 支持语言:中文 (简体)
将图像编码为DataURI。 安装 通过凉亭安装。 $ bower install 1000ch/image-encoder 用法 var ie = new ImageEncoder ( 'path/to/image.png' ) ; ie . getDataURI ( ) . then ( function onFulfilled ( datauri ) {...
Data URI方案是一种编码机制,它允许在网页中直接嵌入文件数据,而无需通过URL访问外部资源。格式通常如下所示: `data:[][;base64],<data>` 其中,mediatype 是指MIME类型,比如图片的MIME类型可以是`image/png`、...
to-datauri 从图像源 url 获取数据 uri。 用法 var toDataURI = require('to-datauri'); toDataURI(imagePath, function (error, uri) { // do things. });
一、 Data URI scheme 简介 Data URI scheme是在RFC2397中定义的,目的是将一些小的数据,直接嵌入到网页中,从而不用再从外部文件载入。比如上面那串字符,其实是一张小图片,将这些字符复制黏贴到火狐的地址栏中并...
CSS本地图像参考->数据URI转换接受文件... #用法css-img-datauri-stream(文件[,选择]) file - CSS文件转换opts -可选对象,其“maxImageSize”成员指定一个字节大小超过该局部图像的引用将不被转换到数据的URI。
Go语言提供了一个名为Go-SVGdatauri的工具,专门用于将SVG图标转换为data URI格式,以便于在CSS中直接引用。 data URI是一种在Web内容中嵌入资源的方式,它允许将图片、字体等数据编码为Base64字符串,并直接放在...
数据生成器用于从文件转换为[removed]写入文件datauri -f=file.png >> file.png.txt# makes a file "file.png.txt" containing the data URI安装只需运行npm install -g 。 现在,您可以全局使用datauri命令。依存...
调整大小 将dataURI调整为最大尺寸 用法 var resizeo = require('resizeo'); resizeo(dataUri, 1024, function(error, resizedUri) { // use resizedUri });
自述文件埃里克沃特2015-01-25 DataURI PHP 库#这个项目是什么# DataUri 类提供了一种访问和构造数据 URI 的便捷方法,但不应依赖它来执行 RFC 2397 标准。 本课程不会: 验证提供/解析的媒体类型验证提供/解析的...
import datauri from 'file-to-datauri' // use with a callback datauri ( __dirname + '/some/file.txt' , ( err , uri ) => { if ( err ) { return ; } console . log ( uri ) ; } ) ; // use with ...
总结来说,`data URI`是一种优化前端性能的技术,通过将图片嵌入CSS,减少了HTTP请求,但在使用时需要注意其兼容性、文件大小和维护成本等问题,根据具体项目需求权衡利弊。在适合的情况下,它能有效地提升网页加载...