2024-05-28 20:40:11 发布
网友
我有这个代码:
<?php for($i = 0; $i<30; $i++) { echo "$i<br>"; usleep(100000); } ?>
我想知道如何使浏览器显示0,然后1,然后2。。。在
在我的示例中,它加载一段时间,然后显示0-29。在
手动刷新输出缓冲区:
<?php ob_start(); for($i = 0; $i<30; $i++) { echo "$i<br>"; ob_flush(); usleep(100000); } ?>
禁用所有输出缓冲并填充输出:
while(@ob_get_clean()); for($i = 0; $i<30; $i++) { echo str_pad("$i<br>",4096); usleep(100000); }
另外,如果您的Apache正在使用mod_deflate,并且您对text/html文件进行了gzip压缩,那么这也行不通。在
mod_deflate
text/html
使用javascript。HTML不是一个交互式控制台。在
编辑:投反对票的人,请记住,我提出的是一个实际可行的解决方案。php的增量输出在这里决不是一个有效的解决方案,因为在这个过程中有很多地方可以缓冲它,而且浏览器没有义务在html进入时以增量方式呈现html。在
手动刷新输出缓冲区:
禁用所有输出缓冲并填充输出:
另外,如果您的Apache正在使用
mod_deflate
,并且您对text/html
文件进行了gzip压缩,那么这也行不通。在使用javascript。HTML不是一个交互式控制台。在
编辑:投反对票的人,请记住,我提出的是一个实际可行的解决方案。php的增量输出在这里决不是一个有效的解决方案,因为在这个过程中有很多地方可以缓冲它,而且浏览器没有义务在html进入时以增量方式呈现html。在
相关问题 更多 >
编程相关推荐