2011-12-01 58 views
1

我通过jQuery的AJAX调用一个PHP脚本,但它需要大量的时间才能返回结果,所以我想知道我怎么可以显示的结果为正印在我的脚本。我的PHP脚本这里只是举例:Ajax调用,同时更新

<?php 
// process.php 
for($i = 0; $i <= 4; $i++){ 
echo json_encode(array("name" => $i)); 
sleep(2); // this sleeps for 2 seconds 
} 
?> 
与我的jQuery

现在我呼吁该网页,并与网页上的ID ajaxquery形式:

$("#ajaxquery").live("submit" , function(){ 
    var formdata = $(this).serialize(); 
    $.ajax 
     ({ 
      type: "POST", 
      url: "process.php", 
      data: formdata, 
      dataType: "json", 
      success: function(data) 
      { 
       $("#success").html(data.name); 
      } 
     }); 

    return false; 
}); 

现在这将输出的所有结果在同一时间在div#成功几秒后,但我怎么能达到它打印回声语句尽快process.php处理它,然后再等待2秒,并在div成功添加下一个结果。谢谢你的帮助。

回答

1

您必须安装在客户端上一个javascript计时器,并打电话给你的PHP脚本每两秒钟,以获得新的数据。这些数据可以附加在jquery .append函数中。

+0

谢谢主席先生,但如果我再打电话与JavaScript来process.php会从开始不是重新运行脚本再次? – user969068

+0

你将不得不修改您的事业的脚本支持异步模式再次 – Jan

+0

感谢,我在想如果我的数据保存到一个文件的Result.txt,然后调用JavaScript计时器从那里,当检查是否有新的内容和更新阿贾克斯成功被称为我停止计时器,是一种正确的方式? – user969068

0

成功函数被调用,只有当$.ajax功能从服务器获取成功响应,并出现这种情况只有在PHP脚本完成它的执行。第一个完成后,必须通过使另一个Ajax调用改变你的逻辑,例如说:“简历”的工作服务器端

+0

感谢,我在想,如果我保存数据到的Result.txt文件中,然后调用JavaScript计时器从那里检查是否有新的内容和更新以及阿贾克斯成功叫我停止计时,什么是正确的方法是什么? – user969068

+0

@Dshah可能是一种方式。 –

+0

感谢您的建议,只是想确定是否有更好的方法:) ..关心 – user969068