通过使用ob_flush与加载消息PHP延时(PHP time delay using ob_flu

2019-10-17 03:38发布

我正在访问一些MySQL数据库PHP脚本,我需要等待几秒钟,直到前面的脚本已经进入所有的信息到数据库中。 等待时间应该不会很长,但以防万一服务器在一个休息日慢,我使用的睡眠(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秒后显示,并且它的第一文本不被擦除。 难道你们知道我在做什么错在这里?

Answer 1:

您不能编辑任何你已经用PHP输出,这将需要重新加载页面。 使用ob_flush只是输出缓冲器,并清空它。 ob_end_clean()停止输出缓冲,让你的输出恢复正常。

要隐藏所示文本你会输出一个JavaScript来隐藏先前呈现的文本(优选包裹在一个div左右为便于选择的)。



文章来源: PHP time delay using ob_flush with loading message
标签: php buffer sleep