我想显示引导警报:
<div class="alert alert-warning" id="slow_loading_data">
<strong>Warning!</strong> Retrieving a large quantity of data, please wait.
</div>
我希望它在 PHP 代码的其余部分运行之前立即显示。我有一个 SQL 语句从 MySQL 数据库检索超过 5000 条记录,因此我希望用户知道页面正在加载。
$sql = "SELECT * FROM " . dbname_bowl . ".ball_model";
try {
$query = $conn->prepare($sql);
$query->execute();
while($data = $query->fetch()) {
$modelID = $data['modelID'];
$model[$modelID]['name'] = $data['name'];
}
$query->closeCursor();
} catch (Exception $e) {
$error_message = 'There was an error processing your request. Page aborted. Please contact the System Administrator with Date & Time of your error. (' . date('Y-m-d H:i:s',time()) . ")";
$application->enqueueMessage(JText::_($error_message), 'error');
return;
}
任何解决此问题的帮助将不胜感激。
最佳答案
您想要做的是在循环之前将输出刷新到屏幕。您可以通过使用 ob_flush
来实现此目的& flush
PHP的方法
因此请尝试以下操作:
就在<?php
之后(或者在 session_start()
之后,如果有的话),添加以下行:
if (ob_get_level() == 0) ob_start();
这将打开您的输出缓冲区。阅读/了解更多 ob_start .
然后,就在 $sql = ...
之前位,添加以下内容:
ob_flush();
flush();
什么 ob_flush
所做的是:
Flush (send) the output buffer
什么 flush
方法的作用是:
Flush system output buffer
如果这不起作用,请在 ob_flush()
之前添加以下内容:
echo str_pad("", 4096);
(通过添加上面的 echo
,您可以欺骗它认为它有足够的数据来执行刷新)
还有一件事需要注意,根据 dermeister 的评论PHP 手册页 ob_flush
--
some problems with ob_flush() and flush() could be resolved by defining content type header :
header( 'Content-type: text/html; charset=utf-8' );
关于php - 在 sql 调用之前显示 Bootstrap 警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49200345/