我通过jquery对一个php脚本进行了ajax调用,但返回结果需要花费大量时间,所以我想知道如何在我的脚本上打印结果时显示结果。这里只是我的PHP脚本的例子:
<?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#success几秒后同时输出所有结果但是我怎样才能实现它打印echo语句,尽快process.php处理它然后再等待2秒并在div成功中添加下一个结果。谢谢你的帮助。
答案 0 :(得分:1)
您必须在客户端上设置一个javascript计时器,并每隔两秒调用一次php脚本来获取新数据。您可以使用jquery .append
函数附加该数据。
答案 1 :(得分:0)
仅当$.ajax
函数从服务器获得成功响应时才会调用success函数,并且仅在PHP脚本完成执行时才会发生。您必须更改逻辑,例如在第一个完成“恢复”工作服务器端之后再进行一次ajax调用