public function ajaxprogress()
{
set_time_limit(0);
// 清除当前的输出缓冲区并禁止输出缓冲,以确保数据能够即时发送给客户端
ob_end_clean();
// 设置响应头,指定使用SSE协议,禁用缓存并保持连接 alive
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
header('Connection: keep-alive');
// 对于使用Nginx服务器的情况,禁用缓冲以确保数据即时发送
header('X-Accel-Buffering: no');
// 循环模拟持续发送数据的过程
for ($i = 0; $i < 100; $i++) {
// 按照SSE格式构建并发送数据,每个数据项之间添加两个换行符以结束数据块
echo "data: " . $i . "\n\n";
// 刷新输出缓冲区并强制数据立即发送到客户端
// ob_flush();
flush();
// 暂停一秒以模拟数据生成或处理的过程
sleep(1);
}
exit;
}