我正在使用 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 作业中,然后很快就会发生,但我觉得很可能有人已经以更好的方式解决了这个问题。
谢谢亚伦