data URI scheme通俗来讲就是图片直接塞到HTML而不是由HTTP。这样从表面上看会降低一次HTTP的请求,实现了对于网页的优化(只是看了其它一些文章data URI由于将图片採用了base 64的编码方式进行表达,所以还是须要进行HTTP去下载内容,并且这种渲染方式同一时候也加大了内存,cpu等等的压力,因此选择的时候须要进行性能方面的权衡)。

比方一张图片用http请求方式进行请求而且显示的方法:

<img src="http://sjolzy.cn/images/A.png"/>

相同的效果使用 data URI scheme 。将图片转化为Base64编码方式后能够这样写进html中,非常显然会降低一次请求的耗时

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAIAAAA
7ljmRAAAAGElEQVQIW2P4DwcMDAxAfBvMAhEQMYgcACEHG8ELxtbPAAAAAElFTkSuQmCC" />

当中。data - 取得数据的协定名称;image/png - 数据类型名称。base64 - 数据的编码方法;iVBOR.... - 编码后的数据

对于图片的base 64编码后的获取方式,能够用 PHP 的 base64_encode() 进行编码,或者用canvas的toDataURL去获得。

Data URL 尽管节省 HTTP 请求,可是倘若这个图像要在网页多个地方显示的话。便会加大网页的内容,延长了下载的时间。当中一个解决的方法是在一个 CSS class 中增加 data URL,在须要显示图像的区块调用这个 class;

另外一个避免过多html内容造成http请求加重的方法是採用 Data URI+localstorage的方法来实现图片资源的缓存,也就是将图片转化为base 64的字符串形式,配上图片的过期信息组成json存储到localstorage中。从而实现缓存的效果。

var imgAsDataURL = imgCanvas.toDataURL("image/png");

转载于:https://www.cnblogs.com/mengfanrong/p/4599837.html

data URI scheme及其应用相关推荐

  1. 编码 data:text/html;c,关于 Data URI Scheme -- data:image/jpg;base64

    转载一篇大神的文章 大家可能注意到了,网页上有些图片的src或css背景图片的url后面跟了一大串字符,比如: data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqA ...

  2. 服务器端发送邮件签名采用Data URI scheme包含图片

    要在服务器端基于HTML,拼接邮件内容,原来用户使用outlook采用了邮件签名,签名里含有公司Logo的图片,Outlook的msg文件里是专有的cid:xxxx,这里借用Data URI sche ...

  3. 使用Data URI Scheme优雅的实现前端导出csv

    问题描述 项目里需要实现一个导出csv的功能,这是个老生常谈的需求,而且我们使用的是iview的组件库,按道理说实现起来应该简单,但实则不然,我在做的时候遇到了一些问题.受限于请求需要token.后端 ...

  4. Data URI scheme 在 html 中嵌入小图片

    例如: <img src="https://img-blog.csdnimg.cn/2022010704064257868.png" /> 这会显示一张图片,网上的资料 ...

  5. Data URL和图片,及Data URI的利弊

    Data URL给了我们一种很巧妙的将图片"嵌入"到HTML中的方法.跟传统的用img标记将服务器上的图片引用到页面中的方式不一样,在Data URL协议中,图片被转换成base6 ...

  6. Data URI详细介绍

    一.URI介绍 URI(统一资源标识符) 是 uniform resource identifier的缩写,它定义了接受内容的协议以及附带的相关内容,如果附带的相关内容是一个地址,那么此时的 URI ...

  7. 【Win10 UWP】URI Scheme(二):自定义协议的处理和适用场景

    上一篇提到Windows Store协议的使用,其实Windows Store协议仅是系统内建的一种协议规则.我们也可以自己定义一套规范的URI-Scheme,除了可以给其他App调用外,本应用也可以 ...

  8. 前端性能优化:使用Data URI代替图片SRC

    日期:2013-7-6  来源:GBin1.com 提升页面大小的效率,不仅仅是取决于使用精灵或是压缩代码,给定页面的请求数量在前端性能中也占有了很不小的重量.减少请求可以让你的网站加载更快,而其中一 ...

  9. 浏览器还 data URI协议

    一般浏览器引用资源时,都是用http和https协议,部分浏览器和所有的ftp软件都会使用ftp协议,引用本地文件会使用file协议,此外还有mms.thunder等各种协议. 不过刚才突然发现Fir ...

最新文章

  1. java开发 中台
  2. 小程序判断数组的index是否为空_微信小程序之购物车功能(仅学习)
  3. 【PHP】创建文件并写入内容
  4. java中public_java中public class与class的区别详解
  5. android实现类似于支付宝余额快速闪动的效果
  6. [转载]LEB128格式简介(CN)
  7. mysql多实例安装启动_MySQL多实例安装启动
  8. 如何在原生微信小程序中实现数据双向绑定
  9. Proxy SwitchyOmega 使用黑名单和白名单
  10. C# Web服务器控件FileUpload()上传文件
  11. 计算机统考408答题卡什么样,提醒:考研初试答题卡长这样,正确填涂,避免丢分!...
  12. 常用工具类之十一 XML报文加签工具类 http://www.w3.org/2000/09/xmldsig
  13. 可牛影像动感渐隐闪图教程
  14. 大端与小端的区别 之小端
  15. 剖析微商到微伤的全过程
  16. SOUI中心事件的使用实例
  17. python和java都是用c文件吗_python是用C实现的,Java是用C++实现的,那为什么不直接用C或C++呢?...
  18. [逆向]汇编JCC指令举例
  19. 嫦娥四号工程总共投入是多少?国家航天局回应
  20. iOS 两个tabbarcontroller之间的切换

热门文章

  1. ContentProvider与ContentResolver使用
  2. 一个简单的单例模式的类
  3. spring boot 启动卡住_SpringBoot集成的44种启动器,你知道几种?
  4. CALL SYMPUT与CALL SYMPUTX区别
  5. vue数组变化视图_vue对象数组数据变化,页面不渲染
  6. com/mysql/jdbc/sqlerror_com.mysql.jdbc.sqlerror
  7. 一键复制android代码,兼容安卓和ios实现一键复制内容到剪切板
  8. 【APICloud系列|25】 easeChat模块(环信-即时通讯)的实现
  9. mysql与mssql中datetime类型字段问题_excel数据存入sqlserver过程中,遇到Datetime的格式问题。...
  10. python中的大数据品牌运营专业公司_国内最好的专业数据分析公司有哪些?