5-URL.createObjectURL()的使用方法

摘要:
此新的URL对象表示指定的File对象或Blob对象。URL。createObjectURL与FileReader非常相似。readAsDataURL。以下是一些个人理解。如果有什么问题,欢迎指出:主要区别是您可以通过FileReader.readAsDataURL获得一个字符串:base64。您可以通过URL获得当前文件的内存URL。创建对象URL。执行时间为:createObjectURL是同步执行(立即)FileReader.readAsDataURL是异步执行内存用法:createObjectURL返回带有哈希的URL,并始终存储在内存中,直到文档触发卸载事件或执行revokeObjectURL以释放它。

官方说明问文档

URL.createObjectURL() 静态方法会创建一个 DOMString,其中包含一个表示参数中给出的对象的URL。这个 URL 的生命周期和创建它的窗口中的 document 绑定。这个新的URL 对象表示指定的 File 对象或 Blob 对象。

URL.createObjectURL(blob)和FileReader.readAsDataURL(file)很相似,下面是个人的一些理解,如有不正确的地方,欢迎指出:

主要区别
通过FileReader.readAsDataURL(file)可以获取一段data:base64的字符串

通过URL.createObjectURL(blob)可以获取当前文件的一个内存URL

执行时机:
createObjectURL是同步执行(立即的)
FileReader.readAsDataURL是异步执行(过一段时间)
内存使用:
createObjectURL返回一段带hash的url,并且一直存储在内存中,直到document触发了unload事件(例如:document close)或者执行revokeObjectURL来释放。
FileReader.readAsDataURL则返回包含很多字符的base64,并会比blob url消耗更多内存,但是在不用的时候会自动从内存中清除(通过垃圾回收机制)
兼容性方面两个属性都兼容ie10以上的浏览器。

优劣对比:
使用createObjectURL可以节省性能并更快速,只不过需要在不使用的情况下手动释放内存
如果不太在意设备性能问题,并想获取图片的base64,则推荐使用FileReader.readAsDataURL
5-URL.createObjectURL()的使用方法第1张

 

免责声明:文章转载自《5-URL.createObjectURL()的使用方法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇透彻详尽的液晶显示屏CCFL背光源驱动逆变电源中的镇流电容设计Linux终端的几个常用快捷方式,记下!下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

charles的URL映射和请求拦截

前一直使用fiddle进行抓包简单使用。对charles的了解甚少,下面也是一些简单使用 1、Charles的URL映射 映射顾名思义是将一个请求重定向到另外一个请求。比如,测试中线上环境有问题,测试环境没有问题时,可将线上环境映射到测试环境进行测试。映射分为两种,一种是Map Remote,一种是Map Local。 Map Remote是将某个网络请求...

HTB-靶机-Reddish

本篇文章仅用于技术交流学习和研究的目的,严禁使用文章中的技术用于非法目的和破坏,否则造成一切后果与发表本文章的作者无关 靶机是作者购买VIP使用退役靶机操作,显示IP地址为10.10.10.94 本次使用https://github.com/Tib3rius/AutoRecon 进行自动化全方位扫描 执行命令autorecon 10.10.10.94 -o...

WordPress版微信小程序开发系列(一):WordPress REST API

自动我发布开源程序WordPress版微信小程序以来,很多WordPress站长在搭建微信小程序的过程中会碰到各种问题来咨询我,有些问题其实很简单,只要仔细看看我写的文章,就可以自己解决。不过这些文章里无法涵盖所有的技术点,因为涉及Wordpress和微信小程序两套程序系统,有些技术点对于小白用户来说确实有些难度,因此我考虑写一个系列文章介绍WordPre...

01--Java开发中文乱码问题分析

一、常见的编码格式 1. ASCII码 总共128个字符,用1个字节的低7位表示,0~31是控制字符,32~126是打印字符。 2.  ISO-8859-1 ISO组织在ASCII基础上进行扩展,仍是单字节编码,支持256个字符,支持大部分西欧字符。 3. GB2312 GBK GB18030 GB2312可用GBK方式解码,不会有问题。GB18030使用不...

js AES对称加密 16进制和base64格式

<!doctype html> <html> <head> <meta charset="utf-8"> <title>aesCbc</title> <script type="text/javascript" src="http://t.zoukankan.com/crypt...

[转]JAVA读取外部资源的方法

在java代码中经常有读取外部资源的要求:如配置文件等等,通常会把配置文件放在classpath下或者在web项目中放在web-inf下. 1.从当前的工作目录中读取: try { BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream("wkdi...