如何不让用户等待缓慢的API调用


How to not let the user wait for slow API calls?

我目前正在使用一个非常缓慢的API,在许多情况下,网站用户必须等待这些API完成。例如,当发送联系表格并通过API发送信息时。

现在,我想知道如何加速API调用,至少对用户来说是这样?可以吗,对一个单独的PHP-文件进行异步AJAX调用,然后从那里进行API-call?如果是,如果用户关闭页面,而API-call仍在运行,会发生什么?他可能会想,一切都已经寄出了。

可以吗,对一个单独的PHP文件进行异步AJAX调用,然后从那里做API-call?

是的,当然;那将是最好的办法。

如果是,如果用户关闭页面,而API-call还在跑步?他可能会想,一切都已经寄出了。

它可能已发送;运行API调用的PHP脚本继续以其愉快的方式运行,只有当它试图发送回响应(可能是确认或错误)时,它才发现客户端离开了。如果API调用最终生成电子邮件,那么无论用户是否等待,它都将完成(除非API调用本身有错误)。

如果您能够运行cron或计划任务,我会将其转换为脱机进程。例如,将数据库保存在本地数据库中,然后立即返回。然后编写一个脚本,该脚本将通过cron定期运行以处理新条目。

我在博客上写了一篇关于这一点的文章,几乎描述了这个确切的过程:用PHP 构建一个可扩展的排队系统