2013-05-13 93 views
2

我有一种情况,我需要运行一些PHP,特别是在需要发送SOAP请求并等待响应的情况下,然后执行某些操作,但有时这些请求可能会很慢,最多需要9秒。离开页面时Ajax请求仍然完成吗?

现在我不想让用户坐在那里等待9秒钟完成。

基本上用户流量..

  • 用户涉及到支付页面
  • 用户点击按钮,通过支付网关支付宝(PayPal)
  • 用户,然后返回到该网站(SOAP请求和所有这需要在这个阶段完成)

我想运行它与贝宝IPN通知,但后来并没有想到它会在用户回到该网站时完成。

所以,我想知道当用户通过Ajax打开第一页时是否可以发出呼叫,并在用户提交付款时运行,并且在他们返回站点时应该完成 - 如果他们最终没有通过付款,这不是什么大问题,所以我并不担心在确认付款之前运行此代码。

我的问题是,如果我通过AJAX启动它,如果用户在完成之前离开页面,代码是否仍然会执行?如果没有,有什么想法?

+0

不要发送它们到paypal,直到ajax完成。 – kennypu 2013-05-13 09:13:42

+0

@kennypu为什么不呢? – Brett 2013-05-13 09:15:58

+0

通过这种方式,您可以确认ajax请求已成功发送并接收,而且没有问题。此外,假设您发送Ajax请求并同时将它们发送到PayPal,你不希望Ajax请求不发送(因为竞争条件) – kennypu 2013-05-13 09:18:00

回答

4

一旦请求发送到服务器,无论您是否离开页面,请求的服务器端都会完成。

唯一不会发生的是执行客户端回调方法。

+0

好的,没什么需要送回客户端,所以应该是安全的,然后我想:) – Brett 2013-05-13 09:16:48