【问题标题】:Printing program output to webpage as it is received打印程序输出到网页,因为它被接收
【发布时间】:2011-02-23 03:26:12
【问题描述】:

老实说,我不知道以前是否有人问过这个问题,或者类似的问题。这样的东西很难搜索。

所以,就这样吧。我希望我的网页运行托管在服务器上的程序(PHP 在这里是正确的选择,是吗?),然后使用该程序的输出打印到网页。但是,该程序不会一次全部打印其输出,因此,当我之前尝试过此操作时,它会等到程序成功退出后再打印输出,而不是在收到时打印它。 (这是有道理的)

当返回每个新结果时,如何将输出打印到网页?即显示网页后,在程序输出文本行时将条目添加到 div 中。

阿贾克斯? Javascript?我只是在寻找解决此问题的正确方法,而不是代码。

【问题讨论】:

    标签: php javascript ajax web-applications frontend


    【解决方案1】:

    就我个人而言,我会使用三个文件:

    1. 正在服务器上运行的脚本 (worker.php)
    2. 客户端调用的php文件(index.php)
    3. 用于处理来自 index.php (ajax.php) 的 ajax 请求的第二个 php 文件

    我的工作流程如下:

    1. 用户调用index.php
    2. index.phpworker.php 进行一次调用,worker.php 开始将输出生成到文本文件 (output.txt)
    3. index.php 不断 ping ajax.php 查看是否有任何新内容添加到 output.txt,并随着更多输出可用而不断更新
    4. worker.php 完成后,它会在文本文件中输出一个 EOF 信号,并在 X 秒后将其删除。 (X 比对 ajax.php 文件的 ping 之间的延迟大一些。)

    【讨论】:

      【解决方案2】:

      基本思想是打开一个通往子进程的管道并像读取文件一样读取它。 特别是对于 PHP,请查看proc_open

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-10
        • 1970-01-01
        • 2015-11-15
        • 2010-10-20
        相关资源
        最近更新 更多