使用usleep功能时的临时消息

时间:2011-11-04 21:10:12

标签: php

我想延迟脚本的执行,我使用usleep函数让它在输出之前实际计算一些东西。我希望在延迟模式下显示一条消息。示例:用户单击“提交”按钮后,会显示一条消息“请等待我们正在处理您的请求...”,并在usleep时间到达且结果显示时消失。我的代码:

<div> 
<form id="form1" name="form1" method="post" action="">
<label> 
<select name="fortune" id="fortune"><?php callcombobox('fortune',$fortune); ?></select>
</label>
<input name="submitbtn" type="submit" id="submitbtn" class="submitbutton" value="Submit" style="width:180px; height:30px;" />
</p>
</form>
</div>
<div>
<?php
echo 'Please wait while we are processing your request..'; 
flush();
usleep(5000000);
?>
<p class="textcolor">Your fortune is  :</p>
<p class="textcolor"><?=nl2br($returnanswer)?></p>//result of fortune
</div>

我是php的新手并且尝试了上面的代码并没有显示echo msg它只显示了从数据库中检索到的结果。有人可以帮忙吗?感谢。

1 个答案:

答案 0 :(得分:1)

PHP有一些输出缓冲,因此在脚本结束之前不会输出。您应该尝试在脚本开头添加ob_end_flush。或者在php.ini配置output_buffering

中将其关闭
<?php ob_end_flush(); ?>
<div> 
<form id="form1" name="form1" method="post" action="">
<label> 
<select name="fortune" id="fortune"><?php callcombobox('fortune',$fortune); ?></select>
</label>
<input name="submitbtn" type="submit" id="submitbtn" class="submitbutton" value="Submit" style="width:180px; height:30px;" />
</p>
</form>
</div>
<div>
<?php
echo 'Please wait while we are processing your request..'; 
flush();
usleep(5000000);
?>
<p class="textcolor">Your fortune is  :</p>
<p class="textcolor"><?=nl2br($returnanswer)?></p>//result of fortune
</div>