2

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

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

基本上用户流是..

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

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

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

我的问题是,如果我将其关闭以通过 AJAX 运行,如果用户在页面完成之前离开页面,代码是否仍会执行?如果没有,有什么想法吗?

4

2 回答 2

7

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

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

于 2013-05-13T09:13:59.007 回答
3

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

默认情况下,它的值为 false。

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

于 2013-05-13T09:31:49.753 回答