有没有办法显示半加载的html或php

有没有办法显示半加载的html或php,php,html,sleep,browser-refresh,Php,Html,Sleep,Browser Refresh,我有一个html页面,它运行几个连续的php/bash脚本,我希望在下一个脚本开始之前在页面上显示结果。可能吗 例如: <html> <body> <br>Html1<br> <?php echo "A"; sleep(4); echo "B"; ?> <br>Html2<br> <?php echo "C"; sleep(4); echo "D"; ?> <br>Html3<br&

我有一个html页面,它运行几个连续的php/bash脚本,我希望在下一个脚本开始之前在页面上显示结果。可能吗

例如:

<html> <body>
<br>Html1<br>
<?php
echo "A";
sleep(4);
echo "B";
?>
<br>Html2<br>
<?php
echo "C";
sleep(4);
echo "D";
?>
<br>Html3<br>
</body> </html>


Html1

Html2

Html3

…在完成所有操作之前,这里没有显示任何内容。

这可能是缓冲问题

在连续的
echo
s之间执行
flush()
,以刷新PHP的内部输出缓冲区

请注意,您的Web服务器可能会执行额外的缓冲,浏览器也可能会执行额外的缓冲,因此不能真正保证更改将显示在浏览器中

如果要测试是否涉及其他缓冲,可以在每次输出后发布一条长的HTML注释

例如:

<?php
  echo "<!-- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ... aaa -->";
?>

如果注释足够长,它将填充缓冲区,迫使其刷新


请注意,这仅用于测试,请勿在生产代码中使用。

这样做行不通。(即使输出缓冲被禁用,它也不会显示。)您的意思是:?@minitech应该在内部启用驻留PHP缓冲区,即使不使用
ob
函数您是对的,我的意思是
flush()
,但根据我的经验
ob\u flush()
隐式调用
flush()
,所以它是一样的。不,它不起作用:o(-试图将
flush()
添加到示例中,但没有任何区别。