实现php实时返回结果给ajax,并在后台保持继续运行的方法
March 8, 2018

有时为了客户体验必需先向客户端返回数据,然后服务端继续运行:比如批量发短信,批量发邮件那么我们可以用这段代码解决:
//省略php接口中处理数据的代码
echo json_encode($res);//返回结果给ajax
//获取缓存区的长度
$size = ob_get_length();
// 告诉浏览器关闭连接
header("Content-Length: $size");
header('Connection: close');
ob_end_flush();
ob_flush();
flush();

/ background process starts here
ignore_user_abort(true);//在关闭连接后,继续运行php脚本
/ background process /
set_time_limit(0); //no time limit,不设置超时时间(根据实际情况使用)
/ Rest of your code starts here /
//继续运行的代码

Leave a Reply

如果您是第一次在本站留言,需要审核后才会显示内容!