离开页面时Ajax请求是否仍然完成?

时间:2013-05-13 09:12:00

标签: php javascript ajax xmlhttprequest

我有一种情况需要运行一些PHP,特别是在我需要发送SOAP请求并等待响应的情况下,然后对此做一些事情,但有时这些请求可能很慢并且最多需要9秒。

现在我真的不希望坐在那里的用户等待9秒才能完成。

基本上用户流程是..

  • 用户来到付款页面
  • 用户点击按钮通过支付网关(Paypal)付款
  • 用户然后返回站点(SOAP请求以及在此阶段需要完成的所有操作)

我正在考虑使用Paypal IPN通知运行它,但后来认为在用户返回网站时它不会完成。

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

我的问题是,如果我通过AJAX运行它,如果用户在完成之前离开页面,代码是否仍会被执行?如果没有,任何想法?

2 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分:2)

如果您使用的是php,则会有一个php.ini设置ignore_user_abort告诉php当客户端中止请求时该怎么做。

默认情况下,其值为false。

http://www.php.net/manual/en/misc.configuration.php#ini.ignore-user-abort