Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php WordPress admin ajax-将操作推迟到发送响应之后_Php_Ajax_Wordpress_Admin Ajax - Fatal编程技术网

Php WordPress admin ajax-将操作推迟到发送响应之后

Php WordPress admin ajax-将操作推迟到发送响应之后,php,ajax,wordpress,admin-ajax,Php,Ajax,Wordpress,Admin Ajax,我使用admin-ajax.php响应来自JavaScript的请求 当我收集了我想要的数据并返回了我的响应后,我还需要将一些数据发送到外部API并向用户发送电子邮件。这两件事都需要一点时间 我希望我可以做类似的事情,在启动操作之前通过AJAX返回JSON响应,这样在用户返回响应后,它们基本上可以在后台发生: function my_ajax_action() { //process the $_REQUEST ajax data here echo json_enc

我使用admin-ajax.php响应来自JavaScript的请求

当我收集了我想要的数据并返回了我的响应后,我还需要将一些数据发送到外部API并向用户发送电子邮件。这两件事都需要一点时间

我希望我可以做类似的事情,在启动操作之前通过AJAX返回JSON响应,这样在用户返回响应后,它们基本上可以在后台发生:

function my_ajax_action() {
       //process the $_REQUEST ajax data here
       echo json_encode($results);

       do_action('request_successful', $results);

       wp_die();
}
…但它显然在死之前等待完成操作(因为PHP不是异步的),AJAX请求在提供响应之前不会完成

是否有任何已知的方法将这些操作推迟到响应完全发送之后?附加到这些操作的两个函数不需要提供响应,只需在用户浏览器中显示结果所需的时间上增加几秒钟

我猜我可以将它们存储在cron作业中,很快就会发生,但我觉得很可能有人已经以更好的方式解决了这个问题

谢谢
Aaron

这可能与PHP会话锁定有关,如果您已经有一个使用会话数据的脚本,那么也将请求会话数据访问的后续脚本将被搁置,直到初始脚本完成。阅读更多如何避免它: