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

URL.createObjectURL()相关推荐

  1. URL.createObjectURL图片预览

    <!DOCTYPE html> <html> <head><meta charset="utf-8" /><meta http ...

  2. 图片上传预览 (URL.createObjectURL)

    知识预备: 1. URL.createObjectURL() 静态方法会创建一个 DOMString,它的 URL 表示参数中的对象.这个 URL 的生命周期和创建它的窗口中的 document 绑定 ...

  3. blob/URL.createObjectURL()/reader.readAsDataURL/文件上传

    文章目录 Blob和ArrayBuffer 实战一:上传图片预览 实战二:以Blob URL加载网络视频 前端实现文件下载(a标签实现文件下载 避免直接打开问题) 先说结论 方案一 a标签+downl ...

  4. 使用对象 url 显示图像(window.URL.createObjectURL的使用)

    本示例使用对象 url 显示图像缩略图.此外, 它还显示其他文件信息, 包括它们的名称和大小. 呈现界面的 HTML 如下所显示: <input type="file" id ...

  5. swagger测试导出报URL.createObjectURL: Argument 1 is not valid for any of the 1-argument overloads.

    以上是使用的是火狐浏览器 测试导出时报:URL.createObjectURL: Argument 1 is not valid for any of the 1-argument overloads ...

  6. URL.createObjectURL、URL.revokeObjectURL、Uint8Array、Blob使用详解

    目录 URL.createObjectURL(obj) URL.revokeObjectURL(objURL) create|revokeObjectURL使用示例详解 arr=new Uint8Ar ...

  7. [转] createObjectURL方法 实现本地图片预览

    ie6 可以直接显示本本地路径的图片 如: <img src="file://c:/3.jpg" />  ~~~网上都说ie7就不支持这种文件系统路径的url,但测试 ...

  8. js 获取图片url的Blob值并预览

    js 获取图片url的Blob值并预览 1)使用 XMLHttpRequest 对象获取图片url的Blob值 参考:https://www.cnblogs.com/tujia/p/6483255.h ...

  9. url、base64、blob,三者之间的转化

    对于vue项目,我们使用axiso来发送请求,如果传递二进制图片时出现乱码,这个是什么问题? 答: axios 默认返回的是 json 文本形式,二进制图片数据被强制转换成了 json 文本形式. 解 ...

  10. button url图片显示不出来_哼!Vue如何在图片上传前使用vue-cropper进行剪切

    首先package.json引入vue-cropper npm i vue-cropper -D template组件中加入上传表单,隐藏input表单,点击图片打开资源文件夹 < 然后继续在t ...

最新文章

  1. HJ14 字符串排序
  2. ecshop 手机版的php代码在哪里,PHP 在ecshop上集成 手机网页支付_php
  3. 洛谷 P4016 负载平衡问题 【最小费用最大流】
  4. vue垂直布局_vue实现长图垂直居上 vue实现短图垂直居中
  5. IREC-GAN:在线推荐中基于模型的对抗训练强化学习
  6. Xcode安装及卸载
  7. 机器学习基础(二十七)—— 数据集的使用
  8. Linux登录时执行
  9. Pandas速查手册中文版
  10. 11-24 EDEM-FLUENT 耦合步骤
  11. Go语言web开发学习
  12. 干货收藏|如何用chrom插件实现U校园自动刷课
  13. PS快捷键大全 打开置入 图层操作的快捷键 新建图层 填充上色 前景色背景色等的快捷键
  14. leetcode---1728. 猫和老鼠 II
  15. virtualbox 设置静态IP
  16. flv f4v mp4 视频播放器代码
  17. layui后台添加数据给php,layui怎么实现数据绑定
  18. Java基本数据类型转字符串
  19. 机器学习中的特征空间
  20. 开放式基金公司网上直销支持卡种及申购费率

热门文章

  1. 调平均律依据拍音来判断准确性的理论简析
  2. 全球及中国粮食加工行业产量需求规模与投资产值预测报告2022版
  3. uubox.net (在线存储)项目的第一阶段终于完成了
  4. JAVA在线小说电子书阅读系统毕业设计 开题报告
  5. IOS端APP测试日志查看方法
  6. python基础——求两个数的最大公因数和最小公倍数
  7. 正式开始撰写《产品大师》,经验来自点滴的积累
  8. 白话前沿IT技术系列—云计算
  9. 非接触IC卡读写模块MFRC530的工作原理及其应用
  10. html跳转按钮谷歌浏览器点击没反应,在各个浏览器点击按钮都没有反应