在 AJAX 中使用 PHP 的 flush() 函数,您需要确保您的服务器配置允许输出缓冲区被清空。flush() 函数用于将已输出的数据发送给浏览器并清空输出缓冲区。
首先,确保您的 PHP 设置允许使用 flush()。在 php.ini 文件中,找到 output_buffering 设置并将其值更改为 Off:
output_buffering = Off
然后,创建一个名为 flush_example.php 的 PHP 文件,其中包含以下内容:
header('Content-Type: text/html; charset=utf-8');
for ($i = 0; $i < 10; $i++) {
echo "Output: {$i}
";
ob_flush(); // 清空(释放)输出缓冲区
flush(); // 将已输出的数据发送给浏览器
sleep(1); // 等待1秒
}
?>
在这个示例中,我们使用 ob_flush() 和 flush() 函数将每次循环的输出发送给浏览器。sleep(1) 函数用于暂停脚本执行1秒钟,以便您可以看到每次输出的延迟。
接下来,创建一个名为 ajax_flush_example.html 的 HTML 文件,其中包含以下内容:
html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>AJAX Flush Exampletitle>
<script src="https://code.jquery.com/jquery-3.6.0.min.js">script>
head>
<body>
<button id="start">Startbutton>
<div id="output">div>
<script>
$(document).ready(function() {
$('#start').click(function() {
$.ajax({
url: 'flush_example.php',
type: 'GET',
dataType: 'html',
success: function(data) {
$('#output').html(data);
}
});
});
});
script>
body>
html>
在这个 HTML 文件中,我们使用 jQuery AJAX 发送请求到 flush_example.php 文件。当用户点击 “Start” 按钮时,AJAX 请求将触发并获取 flush_example.php 文件的输出。
请注意,由于浏览器和服务器之间的网络延迟,您可能无法立即看到输出的每一行。然而,如果您在 flush_example.php 中增加了 ob_implicit_flush(1); 函数调用,那么每次输出后都会自动刷新浏览器输出,从而减少延迟的可见性。
header('Content-Type: text/html; charset=utf-8');
ob_implicit_flush(1); // 自动刷新浏览器输出
for ($i = 0; $i < 10; $i++) {
echo "Output: {$i}
";
ob_flush(); // 清空(释放)输出缓冲区
flush(); // 将已输出的数据发送给浏览器
sleep(1); // 等待1秒
}
?>
现在,当您运行 ajax_flush_example.html 并点击 “Start” 按钮时,您应该能够看到每秒输出一行文本的效果。
以上就是关于“php flush 在 ajax 中如何使用”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm