PHP 先返回结果到前端,PHP代码继续执行后续的任务

/**************** 1 返回给前端结果之前的操作 ****************/
/**************** 2 告诉前端结果,告诉浏览器完成,但继续运行php ****************/
ob_end_clean();
ob_start();    
//Windows服务器需要加上这行。
echo str_repeat(" ",4096);//windows
// echo str_repeat(' ', 65536); //linux
//-----------------------------------------------------------------------------------
_ajaxReturntwo(200,'操作成功');//返回结果给ajax
//-----------------------------------------------------------------------------------
$size = ob_get_length();

header("Content-Length: ".$size);
header("Connection: close");
header("HTTP/1.1 200 OK");
header('Content-Type:application/json; charset=utf-8');
ob_end_flush();
if(ob_get_length())
ob_flush();
flush();
if (function_exists("fastcgi_finish_request")) { // yii或yaf默认不会立即输出,加上此句即可(前提是用的fpm)
    fastcgi_finish_request(); // 响应完成, 立即返回到前端,关闭连接
}

ignore_user_abort(true);//在关闭连接后,继续运行php脚本
set_time_limit(0); //no time limit,不设置超时时间(根据实际情况使用)
/**************** 2 告诉前端结果,告诉浏览器完成,但继续运行php ****************/
/**************** 3 继续运行php ****************/
sleep(20);

猜你喜欢

转载自blog.csdn.net/qq_26507967/article/details/88990670
php
今日推荐