PHP在while循环中打印字符串

时间:2015-02-05 07:43:15

标签: javascript php jquery ajax

我在文件do.php中有一个函数,如下所示:

<?php
    if(isset($POST['submit']))
    {
        for($i=0;$i=10;$i++)
        {   
            $reponse = array(
                'content' = > "This is an example - process #" . $i;
            );
            echo json_encode($response);
            sleep(1); // sleep one second each loop
        }
    }
?>

我有一些简短的JQUERY代码使用ajax发布数据......

<button onclick="post()">Submit</button>
function post()
{
    $.ajax({
        type: "POST",
        url: "do.php",
        data: data,
        success: function (data){
            var json = jQuery.parseJSON(data);
            $('#result').html(json.content);
        }
    });
}

这是输出......

This is an example - process #1
This is an example - process #2
This is an example - process #3
....

当我点击“提交”按钮时,我可以看到firebug上的请求运行10秒钟完成并显示结果。现在我希望每个结果在while循环中完成后逐行显示。我可以构建一个websocket系统,但是这个系统需要花费很多时间和大系统,如果可能的话我只需要一个简单的方法来实现。

我仍然尝试将输出保存到txt文件中并使用JQUERY每500ms读取一次,但这种方式需要太多请求并且效果不佳。

1 个答案:

答案 0 :(得分:1)

你想要达到什么目的? 根据我的理解,您尝试在SERVER端执行多个进程,并且您希望从CLIENT端查询其状态(哪个进程仍在运行/已完成...)
如果是这样,IMO您可以执行这些进程(使用fork()或其他),并让父进程为您的AJAX请求返回每个进程的唯一令牌标识符列表。
现在,每隔500毫秒,使用 setInterval(),查询您收到的令牌。

希望它有所帮助。