我目前正在使用一个非常慢的 API,在许多情况下,网站用户必须等待这些 API 完成。例如,当发送联系表格并通过 API 发送信息时。
现在,我想知道如何加快 API 调用速度,至少对于用户而言?可以吗,对单独的 PHP 文件进行异步 AJAX 调用并从那里进行 API 调用?如果是这样,如果用户关闭页面,而 API 调用仍在运行,会发生什么情况?他可能会想,一切都已经发送了。
我目前正在使用一个非常慢的 API,在许多情况下,网站用户必须等待这些 API 完成。例如,当发送联系表格并通过 API 发送信息时。
现在,我想知道如何加快 API 调用速度,至少对于用户而言?可以吗,对单独的 PHP 文件进行异步 AJAX 调用并从那里进行 API 调用?如果是这样,如果用户关闭页面,而 API 调用仍在运行,会发生什么情况?他可能会想,一切都已经发送了。
可以吗,对单独的 PHP 文件进行异步 AJAX 调用并从那里进行 API 调用?
当然是; 那将是最好的方法。
如果是这样,如果用户关闭页面,而 API 调用仍在运行,会发生什么情况?他可能会想,一切都已经发送了。
它可能已发送;运行 API 调用的 PHP 脚本继续以愉快的方式进行,只有当它尝试发回响应(可能是确认或错误)时,它才发现客户端消失了。如果 API 调用最终生成了一封电子邮件,无论用户是否等待,它都会完成(除非 API 调用本身有错误)。
如果您有能力运行 cron 或计划任务,我会将其转换为离线进程。例如,将数据库保存在本地数据库中并立即返回。然后编写一个脚本,该脚本将通过 cron 定期运行以处理新条目。
我在博客上写过一篇关于这个的文章,它几乎描述了这个确切的过程:使用 PHP 构建一个可扩展的队列系统