为 PHP 安装程序脚本设置顺序输出的最佳方法是什么?假设我有一个页面,并且想要在 PHP 脚本提供的 DIV 内显示增量输出。
因此 page.html
可能包含以下内容:
<div id="output">
<!-- Script Output Here -->
</div>
install.php 可能如下所示(用于测试目的):
<?php
// Turn off Output Buffering
ob_end_flush();
// Begin Test Output (5 second intervals)
echo 'Testing incremental output...' . "\n";
sleep(5);
echo 'Step 1...' . "\n";
sleep(5);
echo 'Step 2...' . "\n";
sleep(5);
echo 'Complete!' . "\n";
我认为 AJAX 可能是最好的方法,但我不确定如何实现。如果我通过 JavaScript 加载“install.php”,则在脚本完成执行之前我不会恢复所有内容(正确吗?)——这使得整个目标变得毫无意义。我以前见过这样做的,但找不到具体的例子来说明它是如何完成的。
感谢任何帮助!
最佳答案
我怀疑 Ajax 会做你想做的事 - 相反,你可能必须更频繁地调用 ajax 获取。
要在信息生成后立即将其刷新,您需要在输出信息后定期使用 flush()
。
我还在相关的 .htaccess 文件中添加了一行,以避免由于 GZipping 输出而产生任何缓冲 (apache2)。
SetEnvIf Request_URI "/url/dont/buffer/me.php" gzip=0
在相关的 PHP 文件中:
ini_set('output_buffering', false);
ini_set('implicit_flush', 'true');
以及对flush()的适当调用。这几乎涵盖了所有基础。
关于PHP:顺序输出的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/749322/