0

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

这是我的代码:

    函数 get_remote() {
        $.ajax({
            url: "Html->url(array('action'=>'getstatus','test')) ?>",
            成功:功能(响应){
                $("#info").html(响应);
                console.log('ok');
                如果(响应!='完成')
                    setTimeout("get_remote()", 10);
            }
        });
    }

    $(函数(){
        $('#initimport').click(function(){      
           get_remote();
           $.ajax({
                url: "Html->url(array('action'=>'initimport'))?>",
                成功:函数(){
                    console.log('成功', this);
                }
           });
           返回假;
        });
    });

4

1 回答 1

0

好的,这就是我要尝试的方法,我认为您需要一种更好的方法来记录时间。我不确定你现在在做什么来测试时代,但这是一个好方法。

如果您还没有这样做,请获取适用于 Firefox 的 Firebug。

打开 Firebug 并转到 net 选项卡。确保启用它。

当您单击每个按钮时,您应该会看到传入的每个请求。如果单击每个按钮,则在上一个请求结束之前您看不到下一个请求开始,那么这告诉我 javascript 有问题。但是,我猜您应该将每个小节的开头相隔 1 秒。这样做,让我们知道你看到了什么。

编辑

我想我发现你的问题。我猜你在 php 中使用 sleep 函数。sleep 函数为当前会话休眠。如果您打开 3 个选项卡并输入 ajax url,您会注意到相同的行为。5、10 和 15 秒完成每个选项卡。我尝试使用谷歌搜索并与其他人发现相同的结果。这可能是因为 PHP 并不是真正的多线程。我建议使用不同的框架。

于 2013-01-28T09:42:22.097 回答