在每个任务完成后打印消息


Print message after finished of every task

我知道主题的标题不清楚,但我将解释这个标题的意图。

首先


我有一个包含一些字段和提交按钮的表单。该表单将向另一个页面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
?>

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

我想在每个任务结束后打印消息。

你必须做一些事情:

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

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

3)确保web服务器不缓存/等待/缓冲,直到脚本完成。这取决于模块/cgi/webserver。我想这就是你的问题所在。

先在cli上尝试你的程序并检查输出。然后通过web服务器运行它。您使用的是哪个web服务器,它如何使用/调用/执行php?

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

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

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

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

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