【问题标题】:Multiple ajax request and progress bar多个ajax请求和进度条
【发布时间】: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


    【解决方案1】:

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

    更多信息在这里:http://www.javascriptkit.com/javatutors/oopjs.shtml

    【讨论】:

    • 好吧,但我认为我需要对象数组,因为每个请求我需要 3 个变量,甚至我需要跟踪所有正在创建的对象
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    相关资源
    最近更新 更多