我正在使用Ajax Form插件,我有一个用于发送多个请求的循环。我正在尝试获取每个文件的单独进度。似乎有效,但文件的进度仅显示在代码的最后<p>
。
for (var i = 0; i < inp.files.length; i++) {
$('form').ajaxSubmit({
beforeSend: function() {
$('body').append('<p class="c'+ i +'"></p>');
var classe = '.c' + i;
},
uploadProgress: function(event, position, total, percentComplete) {
var percentVal = percentComplete + '%';
$(classe).append(percentVal);
//console.log(percentVal, position, total);
}
});
}
2 个文件的 HTML 输出:
<p class="c0"/>
<p class="c1">
79%
100%
81%
100%
</p>
有两个100%
似乎可以获取两个文件的进度。但是,它只是打印在最后一个元素中。谢谢
因为在 c0 的响应进来之前类更改为 c1...将其放入匿名功能中。
for (var i = 0; i < inp.files.length; i++) {
(function () {
var classe = '.c' + i;
$('form').ajaxSubmit({
beforeSend: function () {
$('body').append('<p class="c' + i + '"></p>');
},
uploadProgress: function (event, position, total, percentComplete) {
var percentVal = percentComplete + '%';
$(classe).append(percentVal);
//console.log(percentVal, position, total);
}
});
}());
}
(未测试)
或者您必须更改要同步的 Ajax 请求