更新页面时调用ajax

时间:2011-12-01 11:19:35

标签: ajax jquery

我通过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成功中添加下一个结果。谢谢你的帮助。

2 个答案:

答案 0 :(得分:1)

您必须在客户端上设置一个javascript计时器,并每隔两秒调用一次php脚本来获取新数据。您可以使用jquery .append函数附加该数据。

答案 1 :(得分:0)

仅当$.ajax函数从服务器获得成功响应时才会调用success函数,并且仅在PHP脚本完成执行时才会发生。您必须更改逻辑,例如在第一个完成“恢复”工作服务器端之后再进行一次ajax调用