javascript - 批量添加时进度条的实现原理?
高洛峰
高洛峰 2017-04-11 12:31:53
[JavaScript讨论组]

1.要实现批量添加时显示进度
2.后台给了批量添加的接口
3.使用uib-progressbar进度条插件
4.问题:我现在怎么根据找到添加的进度,进行显示?没有思路,请大神们指导一下。

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(3)
迷茫

去看一下promise,可以获取到进度
https://segmentfault.com/a/11...

如果你是批量添加文件的话,例如组件angular-file-uploader本身就提供方法

天蓬老师

批量添加是指下面这种吗??:

如果是的话,先看看效果哈:

我的实现方式比较简单,ajax 的 upload 对象 的 progress 事件 + formData 对象实现进度条:

HTML:

<input type='file' id='upload_files' multiple='multiple' />

Js:

// ajax 对象
var ajax = new XMLHttpRequest();
// 预置的 formdata 对象,详情查看 ajax level 2。阮一峰的文章里面有详细介绍...
var formdata = new FormData();
// 表单对象
var inp = document.getElementById('upload_files');
var files = inp.files;


for (var i = 0; i < files.length; ++i)
    {
        formdata.append('upload[]' , files[i]);
    }
ajax.open(url , method , isAsync);

// 上传进度事件
ajax.upload.onprogress = function(event){
    if (event.lengthComputable) {
        var uploaded = event.loaded;
        var total    = event.total;
        var ratio    = uploaded / total * 100;
        console.log('上传百分比:' + ratio + '%');
    }
};

// 上传完成事件
ajax.upload.load = function(){
    console.log('上传完成');
}
ajax.send(formdata);
巴扎黑

angular1 版本: http://nervgh.github.io/pages...

angular2 版本:https://github.com/valor-soft...

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号