PHP:顺序输出的最佳方法?

标签 php javascript ajax

为 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/

相关文章:

php - 如何在两份工作之间延迟?

javascript - 在angular js中,如何将数据从父 Controller 传递到子 Controller ?

javascript - 使用 jquery 将文本框值传输到多选

php - Guzzle POST 请求不起作用

php - 共享主机上的绝对路径 : Installing Smarty

javascript - 单击或触摸时切换 div,并在单击/触摸外部时隐藏

javascript - 添加新消息时如何自动向下滚动

javascript - Vanilla JS Ajax 和 base64img 问题

ajax - AJAX Web方法调用在MVC3上返回404

php - Mysql Running Total off 一张表