完成每项任务后打印消息

时间:2013-01-22 14:26:27

标签: php

我知道主题的标题不清楚,但我将解释该标题的用途。

首先
我有一个包含一些字段的表单,并提交按钮。 该表单会向另一个页面upgrade2.php发出请求,例如:

<form action="upgrade2.php" method="post">
  <input ......>
  <input ......>
  <input type="submit" name="open_upgrade2" value="ok" />
</form>

现在,页面upgrade2.php的功能不止如下:

<?php
  task 1
  task 2
  task 3
?>

我想要的是在每个任务打印消息结束后,如:

<?php
  task 1
  echo task 1 finished
  task 2
  echo task 2 finished
  task 3
  echo task 3 finished
?>

我尝试使用sleepob_flushflush函数来停止执行一段时间来打印消息然后继续执行,但不幸的是,脚本必须在同一个任务中执行时间然后告诉我结果,但这不是我想要的。

我希望在每项任务结束后打印消息。

2 个答案:

答案 0 :(得分:0)

你必须做一些事情:

1)关闭ob_caching(或在每个任务/输出后添加ob_flush)

2)在每个任务/输出之后使用flush或停用缓冲区

3)确保在脚本完成之前,Web服务器不会缓存/等待/缓冲。 这取决于modul / cgi / webserver。我想这是你的问题。

尝试先在cli上编程并检查输出。 然后通过网络服务器运行它。 你正在使用哪个网络服务器以及如何使用/调用/执行php?

答案 1 :(得分:0)

不久前,我做了类似的事情,但是在显示方面做了一些工作。

我使用AJAX之类的调用来检索状态,而不是依赖于php刷新功能,该状态存储在memcache中。

我为ajax请求创建了一个文件,它只返回当前登录用户的memcache值,这是一个包含任务的数组,以及它们的完成状态(true或false)。 根据结果​​,javascript会改变HTML。

对于流程脚本,只需在每次任务完成时编辑memcache值。

这似乎是很多工作,但它可以在一小时内完成,并且您可以更好地控制输出的HTML。