文件上传进度提示
需求 当上传的文件相对较大时,用户可能需要等待较长的时间,这个时候前端如果没有任何提示的话,体验不是很好,如果有上传进度提示,就会好很多。而要在上传过程实时显示上传进度,则需要已上传的大小和文件总大小。 前提 请求是异步的。因为要实时获取到上传的进度,则请求需是异步的,如果是同步的话,会直到请求完成才能获取到响应。 实现 这里总结的主要是js方面,至于进度条的显示,有的UI框架,比如semantic就自带了进度条的实现,直接使用即可,没有的话也可以自己用改变div宽度等方式实现,这里不赘述。 如何获取到文件的上传进度? Javascript的XMLHttpRequest提供了一个progress事件,这个事件会返回文件已上传的大小和总大小,根据这两个值,就可以计算上传进度了,关于这个方法,在《Javascript高级程序设计(第3版)》21章第3节中有叙述,有这本书在手的可以看一下。下面贴一下代码。 XMLHttpRequest:progress事件 使用Javascript的XMLHttpRequest的progress事件,实现示例代码为: var formData = new F...