`
wezly
  • 浏览: 490533 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

Data URI的利弊

阅读更多

最近Data URI似乎热了起来,特别是从淘宝UED上发了一篇《 Data URI小试 —— 在旺旺点灯(JS)上的应用 》后,陆续出现这方面的文章。看到不少人提到Data URL时都只是提到了优点,我也好奇了一把,借这机会更全面了解了下。

说到Data URI的优点,自然少不了“减少链接数”,把图片转为Base64编码,以减少图片的链接数。我们先想当然一下,同样一张图片,如果不用发起一个下载请求,打开速度是会更快的。但是,有几个问题需要关注下:

  • 图片始终是要下载的,那么下载一张图片的速度快还是下载一堆编码快?
  • 浏览器对图片的显示,处理效率哪个更快?
  • 图片的缓存问题

做了几个Demo,我们来看对比下:
多小图的处理对比:
Demo1 DataURIDemo2 img
单图处理对比:
Demo1 DataURIDemo2 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正确姿势

    本文将深入探讨如何在dataURI中正确使用SVG,以实现高效、灵活的Web图形展示。 首先,了解dataURI的基本原理。dataURI是一种URL scheme,它允许在单一的URL内直接包含文件内容。其基本格式如下: ``` data:[][;...

    Data URI浅析

    ### Data URI浅析 #### Data URI简介 Data URI是一种特殊的数据表示形式,它允许将小文件内嵌到超文本标记语言(HTML)、级联样式表(CSS)等文档中,而无需额外的HTTP请求。这种方式简化了资源加载过程,提高了...

    .net 图片base64编码 Data URI scheme

    Data URI Scheme是一种URI(统一资源标识符)方案,它允许在单个URI中包含资源的数据,而不是提供指向资源的地址。其基本格式如下: ```text data:[][;base64],<data> ``` 其中,`<mediatype>`是资源的MIME类型,...

    Python库 | python_datauri-0.2.7-py2.py3-none-any.whl

    `python_datauri`是一个这样的库,专为处理Data URI(数据URI)而设计。Data URI是一种在Web开发中用于内联嵌入小文件的机制,它可以将图像、文本等数据直接编码到HTML或CSS中,从而减少HTTP请求,提高页面加载速度...

    datauri:通过terminal或node.js生成Data-URI方案

    模组npm i --save datauri命令行界面npm i -g datauri-cli使用datauri的工具NPM脚本古尔一个插件,用于将图像转换为嵌入式数据URI。 旨在用作的简单单一用途包装器。RUN 在datauri模块的顶部运行着许多grunt插件。 ...

    python-datauri:简化数据URI操作

    >> > from datauri import DataURI >> > uri = DataURI ( [removed]VGhlIHF1aWNrIGJyb3duIGZveCBqdW1wZWQgb3ZlciB0aGUgbGF6eSBkb2cu' ) >> > uri . mimetype 'text/plain' >> > uri . charset 'utf-8' >> > uri . ...

    Data URI和MHTML完整解决所有浏览器

    Data URI和MHTML是两种在Web开发中用于嵌入资源的技术,它们可以帮助优化网页加载速度和性能,尤其是在处理小文件和图像时。然而,这两种方法都有其特定的优缺点和适用场景。 Data URI(Data URL Scheme)是一种在...

    iconfont到datauri「iconfont to datauri」-crx插件

    iconfont到datauri 用于将iconfont网站上的项目字体转为内嵌样式可用的datauri编码 支持语言:中文 (简体)

    image-encoder:将图片编码为dataURI

    将图像编码为DataURI。 安装 通过凉亭安装。 $ bower install 1000ch/image-encoder 用法 var ie = new ImageEncoder ( 'path/to/image.png' ) ; ie . getDataURI ( ) . then ( function onFulfilled ( datauri ) {...

    Nodejs进阶:如何将图片转成datauri嵌入到网页中去实例

    Data URI方案是一种编码机制,它允许在网页中直接嵌入文件数据,而无需通过URL访问外部资源。格式通常如下所示: `data:[][;base64],<data>` 其中,mediatype 是指MIME类型,比如图片的MIME类型可以是`image/png`、...

    to-datauri:从图像路径获取数据 uri

    to-datauri 从图像源 url 获取数据 uri。 用法 var toDataURI = require('to-datauri'); toDataURI(imagePath, function (error, uri) { // do things. });

    Data URI scheme详解和使用实例及图片base64编码实现方法

    一、 Data URI scheme 简介 Data URI scheme是在RFC2397中定义的,目的是将一些小的数据,直接嵌入到网页中,从而不用再从外部文件载入。比如上面那串字符,其实是一张小图片,将这些字符复制黏贴到火狐的地址栏中并...

    css-img-datauri-stream:css-img-datauri-stream

    CSS本地图像参考->数据URI转换接受文件... #用法css-img-datauri-stream(文件[,选择]) file - CSS文件转换opts -可选对象,其“maxImageSize”成员指定一个字节大小超过该局部图像的引用将不被转换到数据的URI。

    Go-SVGdatauri用于在CSS中内联小型SVG图标

    Go语言提供了一个名为Go-SVGdatauri的工具,专门用于将SVG图标转换为data URI格式,以便于在CSS中直接引用。 data URI是一种在Web内容中嵌入资源的方式,它允许将图片、字体等数据编码为Base64字符串,并直接放在...

    datauri-generator:用于从文件URI转换为数据URI的命令行程序

    数据生成器用于从文件转换为[removed]写入文件datauri -f=file.png >> file.png.txt# makes a file "file.png.txt" containing the data URI安装只需运行npm install -g 。 现在,您可以全局使用datauri命令。依存...

    resizeo:调整dataURI的大小

    调整大小 将dataURI调整为最大尺寸 用法 var resizeo = require('resizeo'); resizeo(dataUri, 1024, function(error, resizedUri) { // use resizedUri });

    DataURI:一个方便的类,用于在 PHP 中处理数据 URI

    自述文件埃里克沃特2015-01-25 DataURI PHP 库#这个项目是什么# DataUri 类提供了一种访问和构造数据 URI 的便捷方法,但不应依赖它来执行 RFC 2397 标准。 本课程不会: 验证提供/解析的媒体类型验证提供/解析的...

    file-to-datauri:轻松将本地文件转换为数据uri

    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 ...

    CSS中使用image data URI来处理图片的方法

    总结来说,`data URI`是一种优化前端性能的技术,通过将图片嵌入CSS,减少了HTTP请求,但在使用时需要注意其兼容性、文件大小和维护成本等问题,根据具体项目需求权衡利弊。在适合的情况下,它能有效地提升网页加载...

Global site tag (gtag.js) - Google Analytics