要记住的重要事情是File继承自Blob,File实际上并没有一个slice方法,它从Blob获取这个方法.文件只是添加了一些元数据属性.

想想一个Blob(或File)的最佳方式是指向数据,而不是实际的数据本身.像其他语言的文件句柄一样排序.

您不能在不使用读取器的情况下实际获取Blob中的数据,读取器将异步读取以避免阻止UI线程.

Blob slice()方法只返回另一个Blob,但是再次,这不是数据,它只是一个指向原始Blob中的一系列数据的指针,类似于一个视图的有界指针.为了从切片的Blob中实际获取字节,您仍然需要使用读卡器.在切片的情况下,您的读者是有界的.

这真的只是为了方便起见,所以你不必在你的代码中携带一堆相对和绝对的偏移量,你只需要获得数据的有界视图,就像从字节读取一样使用读者0.

本质上,这是一个懒惰的读者.如果blob已经从文件系统加载/读取,或者是在内存中创建,那么它就是使用它.当您使用文件时,它将被延迟加载并异步流出主线程.

这里的基本逻辑是,浏览器开发人员永远不希望读取同步发生,因为它可能会阻塞主线程,所以所有的API都是围绕着这个核心理念而设计的.注意Blob.slice()是否是同步的 – 这是你知道它实际上不是做任何IO,它只是设置边界和(可能)文件指针.

html5 file对象,javascript – 什么是HTML5 File.slice方法呢?相关推荐

  1. html5 字符串对象,JavaScript核心对象-String对象

    字符串是JavaScript中最常使用的一个对象,几乎每一个程序都会使用到字符串.与其它基本数据类型一样,字符串也有两种形式:基本数据类型形式和对象形式.JavaScript会根据需要在这两种形式之间 ...

  2. php中file对象实例,AJAX_File, FileReader 和 Ajax 文件上传实例分析(php),File FileReader 可以干什么? Ajax - phpStudy...

    File, FileReader 和 Ajax 文件上传实例分析(php) File FileReader 可以干什么?Ajax文件上传例子 FileReader 对象可以读取文件的 Base64编码 ...

  3. js二进制流转Blob对象。Blob对象再转File对象

    JavaScript 二进制转文件 使用js将blob对象转file对象 前端处理后端返回的二进制流文件 js中Blob对象一般用法 js中关于Blob对象的介绍与使用 上传的文件对象 完整代码实例 ...

  4. ASP.NET中的FILE对象总结

    减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2005-6-11 0:14:10 在ASP.NET中引入了名字空间,其中文件操作对应的名字空间是System.IO.名字空间和动态链接库 ...

  5. File对象和IO流

    目录 1.File对象 1.1file的介绍 1.2创建File对象 1.3增加操作 1.4删除操作 1.5修改操作 1.6查询操作 1.7经典题目: 用的方法的递归调用 2 IO流 2.1IO流介绍 ...

  6. php javascript对象,JavaScript 对象

    JavaScript 对象 JavaScript 对象是拥有属性和方法的数据. 真实生活中的对象,属性和方法 真实生活中,一辆汽车是一个对象. 对象有它的属性,如重量和颜色等,方法有启动停止等: 对象 ...

  7. HTML5 file对象和blob对象的互相转换

    使用FileReader 对象转换:File => DataURL 该对象用于读取文件(读取单个对象文件,所以,不能直接读取 Filelist 对象文件集合),即把文件内容读入内存.它接收 Fi ...

  8. JavaScript分割文件(Blob对象|File对象)

    在遇到较大文件上传时往往需要对文件进行分割上传,整理一小段文件分割例子 <input type='file' id='fileSelector' /> <button onclick ...

  9. HTML5学习笔记 —— JavaScript基础知识

    HTML5学习笔记 -- JavaScript基础知识 标签: html5javascriptweb前端 2017-05-11 21:51 883人阅读 评论(0) 收藏 举报 分类: JavaScr ...

最新文章

  1. Windows 系统优化与瘦身
  2. CTFshow 命令执行 web68
  3. 实战SSM_O2O商铺_44【DES加密】 关键配置信息进行DES加密
  4. python 将PascalVOC(XML)格式的标注数据批量转换为YOLO(txt)格式的标注数据
  5. solr的安装使用tomcat容器
  6. domino代理通过Request_Content域接收extjs以post方式提交的数据
  7. 开始Unity3D的学习之旅
  8. win10好用的C语言软件,9款超级实用的Win10软件,一定要收藏,简直不要太好用
  9. Hutool使用总结(VIP典藏版)
  10. Hinton、LeCun、Bengio等人获得2022 年阿斯图里亚斯公主技术和科学研究奖!
  11. CUDA编程.cu文件
  12. SQL Server 2008 SP3简体中文版官方下载
  13. HTML 的属性 lang=“en“ 语言设置为中文
  14. 产品经理的修炼之道--读后感
  15. mac 上格式化磁盘出现MediaKit报告设备上的空间不足以执行请求的解决办法
  16. 网络传输介质详细说明【包括线序】
  17. arcgis python脚本筛选与线共边的面_ArcGIS公共函数Python脚本,Arcgis,常用,功能
  18. 【高级数理统计R语言学习】9 无序多分类分析
  19. PPT保存pps演示文档时,在另一个电脑中字体显示不正常!(已解决)
  20. Java 套接字(Socket)

热门文章

  1. C语言编程题:输入多个字符串,输出其中最短的字符串。
  2. eclipse发展与简介
  3. Cannot run program “F:\JetBrains\IntelliJ IDEA 2021.1\jbr\bin\java.exe“ (in
  4. 【纪中受难记】——Day1:没有爆零
  5. 张一鸣:一个技术男的BAT突围战
  6. python有趣小程序代码,简单的小程序代码
  7. 数中有术:看大数据如何让“时光倒流”
  8. jQuery事件-鼠标事件
  9. 虚拟机网络连接方式 主机连接WLAN(wifi)时
  10. 论文管理工具:Zotero使用心得