【发布时间】:2010-05-07 06:18:50
【问题描述】:
在下面的一段代码中,我创建了一个进度条,并在处理 ajax 请求时显示其进度。
我只是通过在 cnt 计数器变量中添加 5 来伪造这里显示的进度,然后我做了一个 检查计数器何时达到 90。此时,如果请求未成功执行,则我将暂停/禁用进度条,每当响应到来时,我将以 100 完成整个进度条。
现在的问题是我想在触发多个 ajax 请求时添加多个进度条。所以下面是只为一个请求和一个进度条实现的代码,但我想要不止一个。因为这里使用全局变量来检查响应和计时器 id,所以我不知道我可以如何处理多个请求
var cnt=0;
var res=null;
function getProgress(data){
res=data;
}
var i =0;
$('#start').click(function(){
i = setInterval(function() {
if(res!=null)
{
clearInterval(i);
$("#pb1").progressbar( "option", "value", cnt=cnt+100 );
}
var value = $("#pb1").progressbar("option", "value");
if(value >=90 && res==null){
$("#pb1").progressbar("option", "disable");
}
else{
$("#pb1").progressbar( "option", "value", cnt=cnt+5 );
}
},2500);
$.ajax({
url: 'http://localhost/beta/demo.php',
success: getProgress
});
});
$("#pb1").progressbar({
value: 0 ,
change: function(event, ui) {
if(res!=null)
clearInterval(i);
}
});
【问题讨论】:
标签: jquery ajax progress-bar