当用户单击“提交”时,会发生很多表单处理,因此花很长时间才将其发送到“谢谢”页面。
我正在尝试寻找一种推迟表格处理的方法。因此,我立即将它们发送到“谢谢”页面,然后再进行所有表单处理工作。
我现在看到的唯一方法是将所有数据放入$ _POST(下面的示例)并使用cURL发送。但这是最好的方法吗?没有内置的PHP函数可以做到这一点吗?
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"http://www.example.com/form_processor.php");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,
http_build_query(array('postvar1' => 'value1')));
// Receive server response ...
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$server_output = curl_exec($ch);
curl_close ($ch);
答案 0 :(得分:2)
解决这个问题的一种方法是拥有一个队列系统
这是非常可扩展的,它使您可以控制何时以及如何处理表单,以及记录和回复表单处理调试错误。
答案 1 :(得分:1)
如果您不想坚持使用php,那么ajax可能是一个不错的选择。使用异步的ajax调用进行处理,并且页面将不等待直到处理完成。
对于http客户端,您可以使用guzzle,这比直接使用curl容易得多。