如何在脚本结束之前关闭来自 php 的 ajax 请求?示例:用户请求 php.php,其中有一行:echo "phpphp",在这一行之后,ajax 请求完成并有数据"phpphp",但 PHP 脚本继续运行,不使用进程或分叉?
如何使用 PHP 实现此方案? 有答案。设置"连接关闭"和"内容长度标头",并进行刷新。
ob_start();
echo "111";
header("Content-Length: ".ob_get_length());
header("Connection: close");
flush();
somescript();
尝试流式传输 PHP 文件,一旦达到某个点,向 JS 发送返回,这将关闭 JS 连接并(也许?)允许此 php 文件继续?
没有尝试过,但值得一试。
// set as plain text
header('content-type:text/plain');
// let it stream
ob_implicit_flush(true);
ob_end_flush();
exit
或exit
的任何别名将停止脚本执行。
看看输出缓冲 - 将ob_start()
与ob_flush()
一起使用,或者简单地flush()
可能会解决问题。