在网站信息亭中,用户可以将项目添加到购物车,输入所有必要信息并按下提交按钮。在处理订单时,显示给用户是请等待。
在幕后,视图将信息传递给控制器,控制器称为业务逻辑到卡信用卡。结果是成功的。然后,Controller调用业务逻辑来保存数据库中的顺序......结果是成功的。控制器要做的下一件事是将重定向发送回视图。问题是当时用户丢失连接,因此Web从未收到重定向。当网络连接恢复时(通话几秒钟),网络仍然显示顺序,因此用户重新提交了它。所以现在用户有一个重复的订单(虽然不同的ID)。我该如何处理这个问题?我的猜测是,这是一个边缘情况,至少我希望它是。
答案 0 :(得分:2)
加载表单时生成唯一的事务ID /订单ID。在内存或数据库中跟踪使用的事务ID:s,以确保您不会两次提交相同的表单。
您还可以在首次提交时禁用客户端上的提交按钮,以确保无法点击两次。