在 AJAX 中使用 PHP 的 flush()
函数,您需要确保您的服务器配置允许输出缓冲区被清空。flush()
函数用于将已输出的数据发送给浏览器并清空输出缓冲区。
首先,确保您的 PHP 设置允许使用 flush()
。在 php.ini
文件中,找到 output_buffering
设置并将其值更改为 Off
:
output_buffering = Off
然后,创建一个名为 flush_example.php
的 PHP 文件,其中包含以下内容:
"; ob_flush(); // 清空(释放)输出缓冲区 flush(); // 将已输出的数据发送给浏览器 sleep(1); // 等待1秒 } ?>
在这个示例中,我们使用 ob_flush()
和 flush()
函数将每次循环的输出发送给浏览器。sleep(1)
函数用于暂停脚本执行1秒钟,以便您可以看到每次输出的延迟。
接下来,创建一个名为 ajax_flush_example.html
的 HTML 文件,其中包含以下内容:
AJAX Flush Example
在这个 HTML 文件中,我们使用 jQuery AJAX 发送请求到 flush_example.php
文件。当用户点击 “Start” 按钮时,AJAX 请求将触发并获取 flush_example.php
文件的输出。
请注意,由于浏览器和服务器之间的网络延迟,您可能无法立即看到输出的每一行。然而,如果您在 flush_example.php
中增加了 ob_implicit_flush(1);
函数调用,那么每次输出后都会自动刷新浏览器输出,从而减少延迟的可见性。
"; ob_flush(); // 清空(释放)输出缓冲区 flush(); // 将已输出的数据发送给浏览器 sleep(1); // 等待1秒 } ?>
现在,当您运行 ajax_flush_example.html
并点击 “Start” 按钮时,您应该能够看到每秒输出一行文本的效果。