Codeigniter - Как выполнить работу на сервере после просмотра файла? - PullRequest
1 голос
/ 27 августа 2011

Каков наилучший способ выплеснуть файл представления в codeigniter и все еще выполнять некоторую работу на сервере? Ситуация в основном такова:

  1. У меня есть касса PayPal, где пользователь заходит в PayPal и нажимает кнопку Pay Now! Set_express_checkout () вызывается для начала работы.
  2. Пользователь возвращается на страницу благодарности.
  3. Мне нужно вызвать Get_express_checkout_details () и do_checkout () перед тем, как показать ему страницу «Спасибо», и это 2 звонка на довольно медленный сервер PayPal.

Моя проблема в том, что когда пользователь нажимает кнопку «Оплатить сейчас»! Кнопка, он перенаправлен обратно на мой сайт, но висит на PayPal по крайней мере 5 секунд (пока мой сервер делает 2 запроса), прежде чем он сможет что-либо увидеть. Таким образом, вопрос заключается в следующем: где я должен сделать эти два вызова, чтобы пользователю не приходилось ждать так долго, прежде чем им что-либо показывали?

Ответы [ 2 ]

1 голос
/ 27 августа 2011

Я думаю, что использование AJAX-запроса - это то, что вам нужно. Идея заключается в следующем:

  1. Вывод вашей страницы клиенту без выполнения запросов PayPal
  2. Создать дополнительную страницу / метод, который выполняет только запрос PayPal и выводит данные как json
  3. На выведенной странице поместите AJAX-вызов на эту новую страницу
  4. Обработайте ответ, чтобы узнать, был ли запрос успешным.

Для вызовов ajax вы можете взглянуть на jQuery.ajax . Наиболее удобный способ вывода json данных из PHP - использование функции json_encode PHP.

0 голосов
/ 27 августа 2011

Вы можете включить хуки и использовать хук 'post_system', чтобы сделать два вызова медленному серверу. См. http://codeigniter.com/user_guide/general/hooks.html для получения дополнительной информации.

Однако это не даст вам простого способа показать результат двух вызовов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...