同时加载多个$ .ajax调用

时间:2012-06-07 23:03:12

标签: javascript ajax

我在一个页面中有3个$ .ajax请求,这些请求从服务器获取JSON内容并填充三个单独的div。这三个div中的内容非常大,因此加载所有内容需要一段时间。这些ajax调用也会在页面加载时调用,所以类似于:

 $(document).ready(function () {
        $.ajax({
            type: 'POST',
            url: "/controller/action",
            dataType: 'json',
            traditional: true,
            async: false,
            success: function (data) {
                //fill content in div 1
            }
        });

        $.ajax({
            type: 'POST',
            url: "/controller/action2",
            dataType: 'json',
            traditional: true,
            async: false,
            success: function (data) {
                //fill content in div 2
            }
        });

        $.ajax({
            type: 'POST',
            url: "/controller/action3",
            dataType: 'json',
            traditional: true,
            async: false,
            success: function (data) {
                //fill content in div 3
            }
        });
});

我的大问题是:

  1. 如何首先加载页面(以及链接功能等元素)
  2. 之后同时加载这三个ajax脚本。所以不要调用ajax1,ajax2,ajax3;它同时将它们全部调用。
  3. 非常感谢! 发条

3 个答案:

答案 0 :(得分:8)

  1. 页面将在激活ajax调用之前加载。
  2. 如果将async设置为true,它们将同时触发。

答案 1 :(得分:2)

页面将首先加载,您的功能将在准备好后执行。

要使GUI responding 同时执行ajax请求,请删除async:false选项。

答案 2 :(得分:-1)

您可以将此代码移至$(document).load(....)。

3个电话将同时开始。他们的完成时间无法保证。