0

我对 Ajax 调用和我的 apache 服务器的问题感到抓狂。

我有一些脚本 php 和一个带有 javascript 的简单 html。

var i = 0;
var t = 0;
function comenzar(){
    $.get('testAjax2.php', function (data){
        $('#container').append(data);
    });
    t = setTimeout(function(){
        $('#container').append('timeout<br/>');
        i++;
        $.get('testAjax.php?i='+i, function (data){
        $('#container').append(data);
        });
        if(i == 10)
            clearTimeout(t);
    }, 100);
}

PHP文件testAjax2.php代码:

sleep(10); //sleeps for 10 seconds
echo "done! testAjax2.php";

PHP文件testAjax.php代码:

echo $_GET['i']."<br/>";

人 你觉得这段代码怎么样?

在完成第一个之前,我不能进行任何 ajax 调用。它仅在 testAjax2 ajax 调用完成时显示第一。

当第一个有服务器延迟并继续拨打电话时,如何进行多个 ajax 调用?

我完全迷失了,我不知道关于 Ajax 的这种行为(或者可能是 Jquery?)

太感谢了

编辑:对不起我的英语

4

2 回答 2

0

这是满足您要求的简单示例。我只是添加了一个成功回调,这意味着分配给成功回调的函数将在第一次 AJAX 调用成功后调用一次。在回调函数中添加下一个 AJAX 调用。

$.ajax('testAjax2.php', 
        success: callNextFunction,            
});

function callNextFunction(data)
{
    $('#container').append(data);

    $.get('testAjax.php?i='+i, function (data){

        $('#container').append(data);

    });
}
于 2013-07-04T07:03:29.553 回答
0

实际上问题在于ajax行为。因为 ajax 是异步的,所以它不会等待响应并且会执行下一个 ajax 请求,所以如果您有任何依赖于第一个 ajax 请求的编译或响应值的语句,那么您应该将该代码放在 ajax 的成功事件中方法。

于 2013-07-04T07:12:03.810 回答