是否可以从客户端异步向服务器发送两个ajax请求


Is it possible to send two ajax request from client asynchronous to the server?

我的情况是,我有一个页面,卖家要接受一个客户的订单,在客户订单后,卖家点击确认按钮,等待客户通过他的身份证,就像我处理ajax请求一样,弹出一个对话框,其中包含产品列表、消息和取消按钮。

在我的ajax被发送到服务器端后,我用"sleep"做一个"for"来检查用户是否已经通过了他的卡,然后如果他通过了,我将这些项目放入他的账单中(保存到数据库中)。问题是,如果用户决定取消进程,我就无法让取消ajax请求工作,因为它忙于服务器端的第一个请求,并等待返回。

有人对此有什么建议吗?我真的希望网站的工作流程是这样的:

客户订单->卖方添加项目并点击确认->客户通过确认或卖方可以取消->过程结束

即使有一种简单的方法可以像现在这样完成,这个过程也会在多次连接后迅速淹没服务器。

我会在要求客户识别之前将其订单存储到数据库中,订单上的状态字段设置为"等待识别"或类似的内容。然后,您可以继续进行标识流,而不必等待PHP脚本,也不必节省大量资源。

如果客户不小心断开连接,您仍然可以保存她的订单,并允许她稍后完成身份验证。

最后,当客户端成功完成标识时,您可以简单地将订单的状态字段更新为"authenticated",以表明它已准备好进行处理。


编辑:要解决您的特定问题,请考虑以下流程:

  1. 您将订单保存为"待定标识",并显示"正在等待…"对话框。

  2. 每隔几秒钟就会执行一个非常简单的请求,询问订单的状态是否发生了更改,以了解何时需要关闭对话框。

  3. 在某个时刻,识别设备会发送一个确认请求,您可以根据该请求检索订单并更改其状态。然后,您在步骤2中实现的定期调用将启动并隐藏对话框。

作为临时存储介质,会话不是一个好的位置,但Redis、Memcached或类似的服务可以帮助您简化这一过程,因为设备和站点可以以某种方式共享信息。