PHP模拟进度条

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;
    }
此条目发表在php分类目录。将固定链接加入收藏夹。

发表回复