我正在尝试获取正在运行的请求的状态,并在第一个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; }); });
答案 0 :(得分:0)
好的,我会尝试,我认为你需要一个更好的方式来记录时间。我不知道你现在在做什么来测试时间,但这是一个好方法。
如果您还没有使用Firebug for Firefox。
打开Firebug并转到网络标签。确保你启用它。
当你点击每个按钮时,你会看到每个请求都进来。如果你点击每个按钮,你看不到下一个请求开始,直到上一个请求结束,然后这告诉我javascript中有问题。但是,我猜你应该把每个酒吧的开头分开1秒。这样做,让我们知道你看到了什么。
修改强>
我想我发现你有问题。我猜你在php中使用睡眠功能。睡眠功能为当前会话休眠。如果你打开3个标签,并放入ajax网址,你会发现同样的行为。 5,10,然后15s为每个标签完成。我尝试谷歌搜索,并发现与其他人相同的结果。这可能是因为PHP并不是真正的多线程。我建议使用不同的框架。