结合jQuery Ajax请求

时间:2011-08-20 22:32:57

标签: ajax jquery

我有两个Ajax请求,我希望将它们组合成一个。我正在使用$.ajax()而另一个使用$.get()时无法确定如何执行此操作。

由于我对Ajax很新,这让我感到非常痛苦。如果你能提供帮助,我将非常感激。

Ajax请求#1

$.ajax
({
    type: "GET",
    url: "new_arrivals_data.php",
    data: "page="+page,
    success: function(msg)
    {
        $("#gallery_container").ajaxComplete(function(event, request, settings)
        {
            gallery_show();
            loading_hide();
            $("#gallery_container").html(msg);
        });
    }
});

Ajax请求#2

$.get("new_arrivals_data.php",{imgs: value}, function(data){
    $("#gallery_container").html(data);
});

感谢您提供的任何帮助。

3 个答案:

答案 0 :(得分:2)

他们实际上都是GET $.get$.ajax({ type:'GET'的简写。

因此,根据您服务器的响应,将它们组合可能会起作用:

$.ajax
({
    type: "GET",
    url: "new_arrivals_data.php",
    data: {page:page, imgs: value},
    success: function(msg)
    {
        gallery_show();
        loading_hide();
        $("#gallery_container").html(msg);
    }
});

答案 1 :(得分:2)

不确定您在寻找什么,但Ajax请求#2相当于:

$.ajax({
    type: 'GET',
    url: "get_images.php",
    data: {imgs: value},
    success: function(data){
        $("#imgTray").html(data);
    }
});

希望这有帮助。

答案 2 :(得分:2)

您不能只是“合并”请求 - 您仍然需要对这些网址中的每一个发出两个单独的请求。因为默认情况下,ajax请求是异步的,所以你几乎可以同时触发它们(如果一个不依赖于另一个。正如marko在注释中指出的那样,如果它们 依赖,你可以强迫请求是同步的。$.ajax具有async属性。)。

if(condition){
    makeRequest1();
    makeRequest2();
}

同样$.get()只是$.ajax()的便捷方法,其中预设了某些选项(例如使用GET作为请求类型)。