//清空settimeout,重置进度条
$('.progress-bar-success').css('width',0);
$('#progress').removeClass('hide');
//开始导入
$.ajax({
type: "POST",
async:true,
url: "{:U('Client/Progress/import')}",
data: {'filepath':data.filepath},
datatype: "json",
success: function (data) {
//导入完成之后的动作
……
}
});
//获取上传进度
querystatus();function querystatus() {
$.ajax({
type: "POST",
async:true,
url: "{:U('Client/Progress/progress')}",
datatype: "json",
success: function (json) {
var data = json.data;
$('#msg').text(data.msg+(data.progress/data.total*100)+'%');
$('.progress-bar-success').css('width',(data.progress/data.total*100)+'%');
if(data.progress==data.total) {
return;
}
setTimeout(function(){
querystatus();
}, 1000);
}
});
}
但是执行之后的结果比较纠结。定时获取状态的请求总是在第一个请求完成之后才执行。求大神指点
最佳答案