在很多业务需求中,我们都可能需要先让php给浏览器输出,然后在后台慢慢处理其他不用输出耗时的业务.
那么,php该怎么实现这个功能呢?...ignore_user_abort(true);
首先,我们先来了解下ignore_user_abort(true);这个函数
这个函数可以忽略客户机的断开,继续执行php代码
那到底这个用来干啥的呢?...30秒时,会直接终止该php进程,可使用set_time_limit(0),设置为用不超时,这样的话,客户端就算断开,就算超过30秒,php进程也会一直执行下去,直到执行完成
实时输出
在我之前的一篇讲...buffer缓冲区的文章中,有讲到过浏览器实时输出,刷新缓冲区可以让php+web服务器的输出变成实时输出,不再需要等待脚本结束才显示内容.然而,apache和nginx的实现方式也有所不同
<?...我们就要开始实现这个功能了
伪结束响应原理是:
先让php提前输出"已结束响应"代码(其实还没有结束,还可以继续echo输出)
然后让用户自行关闭窗口,通过set_time_limit和ignore_user_abort