多个ajax请求和进度条

时间:2010-05-07 06:18:51

标签: jquery ajax progress-bar

在下面的一段代码中,我创建了一个进度条,并在处理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);

}
});

1 个答案:

答案 0 :(得分:0)

如何使用Objects而不是变量?您创建一个包含所有变量的对象,然后创建与您拥有的进度条一样多的副本。

此处有更多信息:http://www.javascriptkit.com/javatutors/oopjs.shtml