多个ajax请求调用。

时间:2013-01-28 09:37:35

标签: jquery ajax

我正在尝试获取正在运行的请求的状态,并在第一个rquest运行时在页面上更新它。但是在请求运行时它没有更新,它只在开始和结束时更新。怎么了?

这是我的代码:


    function get_remote() {
        $.ajax({
            url: "Html->url(array('action'=>'getstatus','test')) ?>",
            success: function(response) {
                $("#info").html(response);
                console.log('ok');
                if(response != 'finished')
                    setTimeout("get_remote()", 10);
            }
        });
    }

    $(function() {
        $('#initimport').click(function(){      
           get_remote();
           $.ajax({
                url: "Html->url(array('action'=>'initimport'))?>",
                success: function () {
                    console.log('success', this);
                }
           });
           return false;
        });
    });

1 个答案:

答案 0 :(得分:0)

好的,我会尝试,我认为你需要一个更好的方式来记录时间。我不知道你现在在做什么来测试时间,但这是一个好方法。

如果您还没有使用Firebug for Firefox。

打开Firebug并转到网络标签。确保你启用它。

当你点击每个按钮时,你会看到每个请求都进来。如果你点击每个按钮,你看不到下一个请求开始,直到上一个请求结束,然后这告诉我javascript中有问题。但是,我猜你应该把每个酒吧的开头分开1秒。这样做,让我们知道你看到了什么。

修改

我想我发现你有问题。我猜你在php中使用睡眠功能。睡眠功能为当前会话休眠。如果你打开3个标签,并放入ajax网址,你会发现同样的行为。 5,10,然后15s为每个标签完成。我尝试谷歌搜索,并发现与其他人相同的结果。这可能是因为PHP并不是真正的多线程。我建议使用不同的框架。