2010-03-09 142 views
0

我正在开发一个eshop应用程序。我正在使用webservice在Oracle数据库中创建订单,并且websvc将给出响应(订单号),我会通知客户订单(订单号)已生成 我的问题 订单的创建在后端系统和用户中花费太多时间正在保持刷新页面,在每个刷新用户将返回到订单创建页面,因此用户可以再次点击创建订单按钮 在这种情况下,多个订单正在为相同的订单行创建。我可以限制用户只创建一个订单如果我在websvc响应中获得了订单号,并且我可以在下一页给客户订单编号 但是当我没有得到响应(订单编号)并且用户正在刷新页面时,真正的问题会出现。请求已经到后端系统,它会创建订单,我的应用程序将不会得到回应异步PHP请求(不是AJAX)

PHP中是否有任何方法,如果第一个请求是由用户发起的,并且它不能异步检查订单的状态无论furthur页面导航 请帮我.. 预先感谢

+3

hidden iframes? – 2010-03-09 08:24:32

+0

这不会......如果用户刷新页面.. iframe也会刷新 – 2010-03-11 06:34:57

回答

1

你可以做什么这里把国旗在数据库中从用户提交的信息(例如,用户的IP信息,呈交状态)。在加载页面时,您可以检查该标志,并根据它启用/禁用“创建订单”按钮。

让我知道你是否需要更多的细节。

pinaki

+0

+1,也许可以在SESSION中设置一个引用变量,并在没有查询的情况下完成同样的事情......但基本上是相同的方法。 – 2010-03-09 11:16:41

+0

是的,你是正确的..但我使用中间件应用程序的Webservice来创建订单,这个web服务负责订单创建..所以我需要等待来自webservice的响应..如果我没有得到响应和用户刷新页面顺序将被创建,我的应用程序将不会得到订单号,所以它会给出选项来再次创建订单:( Iwant一些事情,如PHP需要持续连接到webservice,直到它得到响应和页面刷新应该不会影响持续连接 – 2010-03-11 06:31:31

+0

您不能停止页面刷新,因为用户可以杀死浏览器并重新启动。我建议您让用户刷新页面,但在两者之间添加一个检查层(使用数据库或会话标志),以停止从完成web服务请求刷新,所以直到第一个请求从给定的IP完成,你不允许另一个webservice创建订单。我想这应该解决你的问题。让我知道你的想法。 – pinaki 2010-03-12 06:07:36