jQuery多个ajax调用

时间:2014-05-19 17:34:55

标签: php jquery ajax json

在对两个不同页面进行一些ajax调用时,从中继续发送响应,而其他页面继续加载并在完成时发送响应。

这就是我在做的事情:

$('.container').html('Please wait... Working : <span id="done">0</span></div>').fadeIn("slow");
$.post('work.php',{'p' : 'proccessImages'},function(data){
    if(data == "success"){
        $('div.container').html("Images processed!").slideDown(3000);
    }
});

现在我真正做的是,当进行上述调用时,“Work.php”会创建一些需要时间的图像缩略图,而另一个名为“done.php”的脚本会检查有多少图像。使用JSON生成并响应,当“Work.php”完成处理时,它还发送回“成功”消息。这是另一个函数,用已经完成的图像更新id为“done”的跨度!

function repeatJSON(){
    $.getJSON( "http://localhost/done.php", function( data ) {
        var items = [];
        $.each( data, function( key, val ) {
            var currentValue = $("#done").text();
            if(val !== currentValue){
                $("#counter").html("<b>"+val+"</b>").css({"color" : "black"}).hide().fadeIn("slow");
            }
            setTimeout(function(){repeatJSON()},2000);
        });
    });
}

如果我在$ .post中执行上述重复功能,它将无法工作,我将不再获得“Work.php”的响应,尽管脚本在后台继续工作。

是否有可能进行两次多次通话?一个人继续工作,其他人不断更新?

1 个答案:

答案 0 :(得分:0)

默认情况下,AJAX调用是异步的,但jquery AJAX函数提供了进行同步调用的属性。 您可以将 async 属性设置为false以进行同步调用,然后在Work.php的成功模块中,您可以向另一个加载相关数据的文件发出另一个请求。