1

我正在运行一个访问一些 MySQL 数据库的 PHP 脚本,我需要等待几秒钟,直到上一个脚本将所有信息输入数据库。等待时间不应该很长,但以防万一服务器在休息日很慢,我使用 sleep(10) 等待 10 秒,然后再执行脚本。我想在等待 10 秒时显示“请稍候”消息,但不幸的是,该消息仅在 10 秒完成后才会显示。这就是我要这样做的方式:

ob_start();
echo "Please wait while your invoice is being created... </br>";
ob_flush();
sleep(10);
ob_end_clean();
echo "Success...";

根据网上的一些研究,我的印象是 ob_flush() 会在 10 秒之前输出文本,然后 ob_end_clean() 会擦除以前打印的文本,但我得到的是两个文本都是在 10 秒后显示并且第一个文本没有被删除。你们知道我在这里做错了什么吗?

4

1 回答 1

0

您无法编辑已经使用 PHP 输出的任何内容,这需要重新加载页面。ob_flush 只是输出缓冲区并将其清空。ob_end_clean() 停止输出缓冲,让您再次正常输出。

要隐藏显示的文本,您将输出一个 javascript 来隐藏先前呈现的文本(最好包裹在 div 中以便于选择)。

于 2012-08-16T20:56:57.553 回答