用户登录

用 FileReader 在读取文件的一开始会触发一个 loadstart 事件 .. 读取文件进行的时候,会触发 progress 事件 … 下面我们学习一下使用文件阅读器的这些事件 …

progress 这个事件会重复的发生 … 每次发生这个事件,事件返回的对象里面会包含一些有用的信息 .. 比如文件的数据是多少,已经读取的数据是多少 ..

根据这些数据 ,我们可以在页面上显示一个文件读取的进度条 … 不过在这之前,我们还是先来了解一下这个事件 ..

这里我们可以使用 progress 事件的事件处理器 onprogress …

reader.onprogress = function(event){}

把事件返回的对象交给这个函数去处理一下 … 下面再去定义一下这个事件发生的时候去做的事 … 我们可以先把这个事件对象输出到控制台上看看 …

console.log(event)

保存 … 回到浏览器 … 刷新 … 打开控制台 .. 然后选择文件 … 找一个大一些的文件 … 打开 …

在控制台上,你会看到,progress 事件发生了很多次 …

这个事件对象里的 total 属性是选择的文件的大小 .. loaded 属性里面是当前这个 progress 事件发生的时候,所读取的数据 …

使用这些数据,通过简单的算术可以得到当前的读取的进度的百分比 …

可以使用 loaded 除以 total,再乘以 100 …

Math.round( event.loaded / event.total * 100 )

算出的结果可以四舍五入一下,只保留整数 … 把最终算出来的结果起个名字 …

var progressStatus =

后面可以再加上一个百分号 …

var progressStatus = Math.round(evt.loaded / evt.total * 100) + "%" ;

然后把这个 progressStatus 输出到控制台上 … 保存 ..

回到浏览器 … 刷新 … 浏览文件 … 打开 …

会显示出每次发生 progress 事件的时候,文件读取进度的百分比 … 使用这个百分比再加上点 HTML 和 CSS ,我们可以在页面上显示一个友好的进度条 …

在下面视频里我们再去看一下创建一个真正实用的进度条 …

FileReader 事件《 HTML5:文件 API 》

统计

14696
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点