2012-08-22 187 views
4

我在一个页面上有2个Ajax请求。我跑了第一个请求,分别开始第二个。但第二个在第一个跑完后停止工作。当第一次结束时继续。 第一次请求需要很长时间 - 大约30-60秒,在这段时间内,我需要第二次请求来显示日志在第一次请求时会发生什么。我尝试使用async:true,但它不能帮助我。PHP多个Ajax请求:第一个请求块第二个请求

这是我的代码

<script type="text/javascript"> 
    var auto_refresh = setInterval(function() 
     { asyncGet('log.php') }, 1000 
    ); 

    function asyncGet(addr) { 
     $.ajax({ 
      url: addr, 
      async: true, 
      success: function (response) { 
       $('#loadLog').html(response); 
      } 
     }); 
    } 

    function getConn(addr) { 
     $.ajax({ 
      url: addr, 
      async: true, 
      success: function (response) { 
       stopGet(); 
      } 
     }); 
    } 


</script> 

<div id="loadLog" class="lLog"></div> 

,我叫这种方式第一Ajax请求:getConn( 'main.php');从功能按下按钮。 第二次请求正在运行,但在第一次请求完成之前不显示响应。

我将从萤火虫附加图像。 main.php - 需要较长时间的请求。 log.php - 是被阻止的记录器。

enter image description here

会很感激一些指引我要去哪里错了

+0

http://stackoverflow.com/questions/561046/how-many-concurrent-ajax-xmlhttprequest-requests-are-allowed-in-popular-browse –

+0

是:) 如果main.php未运行 - 日志每秒加载非常快。这里是代码: <?php \t require'config.php'; \t isLogged(); (“SELECT * FROM logs WHERE user_id = $ logged [id] AND revision = $ logged [revision] ORDER BY id DESC”); \t while($ r = mysql_fetch_assoc($ log)){ \t \t echo'  =>'。 $ r ['event']。 ''。 $ r ['date']。 '
'; \t} ?> – Dodo

回答

8

这可能是会议的一个问题。看看这post。假设您可能需要尽快关闭main.php中的会话。

+1

我刚刚有一个“Awwwwuuuu”的时刻。我诚实地在6年的PHP中从来不知道这一点。非常感谢:) – Dodo

+0

嘿,我有类似的问题,但我没有使用会话。会话用作全局,但不用于被调用的函数。我使用数据库来检索结果。请帮忙。 –

+0

@JunaidAtique您的代码不需要直接使用会话。即使不需要,它也可能会在每个请求上自动启动。 –

相关问题