2013-05-13 3 views
2

У меня возникла ситуация, когда мне нужно запустить некоторый PHP, особенно там, где мне нужно отправить запрос SOAP и дождаться ответа, а затем сделать что-то с этим, однако иногда эти запросы могут быть медленными и занимать до 9 секунд ,Выполняет ли запросы Ajax завершение при выходе из страницы?

Теперь я не хочу, чтобы пользователь сидел там, ожидая 9 секунд для этого.

В основном поток пользователь ..

  • Пользователь заходит на страницу оплаты
  • Пользователь нажимает кнопку для оплаты через платежный шлюз (Paypal)
  • Затем пользователь возвращается на сайт (запрос SOAP и все которые должны быть завершены на этом этапе)

Я думал запустить его с уведомлением IPN Paypal, но потом не думал, что он будет завершен к тому времени, когда пользователь вернется на сайт ,

Итак, мне интересно, могу ли я отправить вызов, когда пользователь попадает на первую страницу через Ajax и запускает ее, пока пользователь отправляет платеж, и к тому времени, когда они вернутся на сайт, это должно быть сделано - Это неважно, если они не закончили с оплатой, поэтому я не беспокоюсь о том, чтобы запустить этот код, прежде чем подтвердить платеж.

Мой вопрос: если я запустил это для запуска через AJAX, будет ли код выполняться, если пользователь покинет страницу до ее завершения? Если нет, какие-то идеи?

+0

не отправлять их в PayPal пока Аякс не будет завершен. – kennypu

+0

@kennypu почему нет? – Brett

+0

таким образом вы можете подтвердить, что запрос ajax был отправлен и принят успешно без проблем. Кроме того, скажем, если вы отправляете запрос Ajax и отправляете их на paypal в одно время; вы не хотите, чтобы запрос ajax не отправлялся (из-за состояния гонки) – kennypu

ответ

4

Как только запрос отправляется на сервер, независимо от того, удаляетесь ли вы от страницы, серверная часть запроса будет завершена.

Единственное, чего не произойдет, это выполнение метода обратного вызова на стороне клиента.

+0

Хорошо, ну ничего не нужно посылать обратно клиенту, так что должно быть безопасно, тогда я думаю :) – Brett

Смежные вопросы