data URI scheme及其应用

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/375831.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux 禁用触摸板

1&#xff0c;首先需要查看触摸板&#xff1a; 命令&#xff1a;xinput list 结果&#xff1a; ⎡ Virtual core pointer         id2 [master pointer (3)]    ⎜ ↳ Virtual core XTEST pointer      id4 […

大学新生学计算机推荐电脑,大学新生用什么电脑好呢?

科技的发展日新月异&#xff0c;数码的yi巴为你资讯。今天是7月的开头&#xff0c;我们正式迈入了2019下半年。7月开头也正是许多大多数高考生快忙完志愿填报&#xff0c;开始考虑大学该选择什么电脑的时候。今天yi巴就来跟大家聊聊该大学新生该怎么选择电脑&#xff0c;并给予…

NewCode----句子反转

题目描述 给定一个句子&#xff08;只包含字母和空格&#xff09;&#xff0c; 将句子中的单词位置反转&#xff0c;单词用空格分割, 单词之间只有一个空格&#xff0c;前后没有空格。 比如&#xff1a; &#xff08;1&#xff09; “hello xiao mi”-> “mi xiao hello” …

mac boot2docker certs not valid with 1.7

摘自&#xff1a;https://github.com/boot2docker/boot2docker/issues/824 An error occurred trying to connect: Get https://192.168.59.103:2376/v1.19/containers/json: x509: certificate is valid for 127.0.0.1, 10.0.2.15, not 192.168.59.103 I come with the same p…

对象之间的交互

之前写过一篇随笔《剪刀剪纸》是给一些新同事讲面向对象时用的&#xff0c;当时就感觉有些不顺畅&#xff0c;不过用来给新同事入门足够了就没多想&#xff0c;最近看书时偶尔走神把这件事想起来了&#xff0c;顺便群里讨论时谈到聚合之间的方法调用&#xff0c;于是决定写一篇…

NewCode----数串

题目描述&#xff1a; 设有n个正整数&#xff0c;将他们连接成一排&#xff0c;组成一个最大的多位整数。 如:n3时&#xff0c;3个整数13,312,343,连成的最大整数为34331213。 如:n4时,4个整数7,13,4,246连接成的最大整数为7424613。 输入描述: 有多组测试样例&#xff0c…

计算机跨专业专插本学音乐,欢迎投稿丨专插本可以跨专业考,只要肯坚持!

点击上方△蓝字可关注我们昵称E师姐性别女插本复习资料教材、小红书、CB398、启航等插本关注的公众号、网站等介绍微信公众号居多&#xff1a;专插本资料库、专插本直通车、广东省专插本、插本最前线等等……专科学校和专业广州城市职业学院 会计插本学校和专业广东财经大学华商…

Android,监控ContentProvider的数据改变

有时候应用中需要监听ContentProvider的改变并提供响应&#xff0c;这时候就要利用ContentObserver类了 不管是ContentProvider中实现的,insert,delete,update方法中的任何一个&#xff0c;程序都会调用getContext().getContentResolver().notifyChange(uri,null); 这行代码可用…

[leetcode]Sort List

题目要求&#xff1a;Sort a linked list in O(n log n) time using constant space complexity. 数据结构定义&#xff1a; 1 /** 2 * Definition for singly-linked list. 3 * struct ListNode { 4 * int val; 5 * ListNode *next; 6 * ListNode(int x) : v…

北京市中 高英语听说计算机考,2021年北京高考首次英语听说机考时间确定,共五种题型...

从明年开始&#xff0c;北京市高考统考英语科目增加口语考试&#xff0c;连同之前的听力考试一起&#xff0c;实行一年两考。今天&#xff0c;北京教育考试院发布消息&#xff0c;2021年高考英语听说计算机考试首考将于2020年12月12日进行。12月7日起&#xff0c;考生可登陆北京…

NewCode----彩色宝石项链

题目描述: 有一条彩色宝石项链&#xff0c;是由很多种不同的宝石组成的&#xff0c;包括红宝石&#xff0c;蓝宝石&#xff0c;钻石&#xff0c;翡翠&#xff0c;珍珠等。有一天国王把项链赏赐给了一个学者&#xff0c;并跟他说&#xff0c;你可以带走这条项链&#xff0c;但是…

插件开发-UI插件开发

1.新建类库解决方案&#xff0c;引入命名空间,同时引入要添加UI Form的WebPart(在Portal\UILib目录下)2.继续UFSoft.UBF.UI.Custom.ExtendedPartBase&#xff0c;重写AfterInit()方法&#xff0c;代码如下&#xff0c;便于添加下拉列表按钮&#xff0c;在原单据中UI先新增一下拉…

为博客园选择一个小巧霸气的语法高亮插件

博客园的语法高亮简直蛋疼&#xff0c;于是乎就打算找一个靠谱的插件来改造下。各种百度谷歌&#xff0c;大致得到几个推荐&#xff1a;SyntaxHighlighter&#xff0c;Snippet&#xff0c;Google Code Pretiffy&#xff0c;Highlight&#xff0c;SHJS。其实 SyntaxHighlighter …

计算器软件设计和计算机软件设计区别,求一个模拟计算器程序

# include# include# include# include# define MAX_OPERATOR_NUM 100//运算符栈数组长度# define MAX_DATA_NUM 100//运算数栈数组长度typedef struct OPStack//定义运算符栈{char opStack[MAX_OPERATOR_NUM];int top;}OPStack, *pOPStack;typedef struct DATAStack//定义操作…

python中print语句

学习链接1 学习链接2 1. 如果print语句后面什么符号都没有是个换行语句&#xff0c;也就是是要另起一行。 2. 分号表示下次输出是紧挨着这个光标位置输出. 3. 而逗号是下次输出与这次输出有一定的空格之后接着输出. namekk salutationMr. greetingHello, print greeting,sa…

计算机应用基础论坛贴子怎么发,网络课程论坛中长尾现象的应对策略——以《计算机应用基础》网络课程为例...

摘要&#xff1a;进入21世纪以来,互联网就备受关注.由于我国信息设施资源建设稳步推进,互联网的基础更为坚实,发展更为迅速.据权威数据统计,中国至2009年约拥有130万个BBS论坛,数量为全球第一,然而,作为分享和参与类应用的典型代表(更新博客,发帖/回帖)的使用率仍然偏低.笔者在…

解析Json需要设置Mime

IIS6.0 1.打开IIS添加Mime项 关联扩展名&#xff1a;*.json内容类型(MIME)&#xff1a;application/x-javascript 2.添加映射&#xff1a; 位置在IIS对应站点右键属性&#xff1a;”主目录”-”应用程序设置”-”配置”-”映射”-”添加”&#xff0c;会打开”添加/编辑应用程序…

Using the Transient Fault Handling Application Block

http://msdn.microsoft.com/en-us/library/dn440719(vpandp.60).aspx转载于:https://www.cnblogs.com/fengye87626/p/3772555.html

让python脚本像普通程序一样运行

有些时候像运行其他程序一样运行python程序&#xff08;也叫做脚本&#xff09;&#xff0c;而不是显式使用python解释器。在UNIX中有个标准的实现方法&#xff1a;在脚本首行前面加上#&#xff01;&#xff08;叫做pound bang或者shebang&#xff09;&#xff0c;在其后加上用…

Function类型(JS高程3)—— JS学习笔记2015-6-29(第70天)

Function 类型 函数是对象 具有属性和方法&#xff0c;函数名实际上是一个指向函数对象的指针 没有重载&#xff1b; 函数声明和函数表达式 函数声明&#xff1a; function sum (num1, num2){ return num1 num2; } 函数表达式&#xff1a; var sum function(num1, num2){ ret…