Codeigniter -显示视图文件后,如何在服务器上工作


Codeigniter - How to do work on server, after view file is shown?

在编码器中输出视图文件并且仍然在服务器上做一些工作的最佳方法是什么?情况基本上是:

  1. 我有一个贝宝结帐,用户去贝宝,点击支付现在!调用set_express_checkout()来开始操作。
  2. 用户返回到感谢页面。
  3. 我必须调用Get_express_checkout_details()和do_checkout()之前显示他的感谢页面,这是2调用一个相当慢的payPal服务器。

我的问题是,当用户点击Pay Now!按钮,他被重定向到我的网站,但在payPal上挂了至少5秒(而我的服务器发出了2个请求),他才能看到任何东西。所以问题是:我应该在哪里进行这两个调用,这样用户就不必在显示任何内容之前等待那么长时间?

我认为使用AJAX请求正是您想要的。思路如下:

  1. 将您的页面输出到客户端不执行任何paypal请求
  2. 创建额外的页面/方法,只执行paypal请求和输出数据作为json
  3. 在输出的页面上对新页面进行AJAX调用
  4. 处理响应以知道请求是否成功。

对于ajax调用,您可能需要查看一下jQuery.ajax。从PHP输出json数据最方便的方法是使用json_encode PHP函数。

您可以启用钩子并使用'postrongystem'钩子对慢速服务器进行两次调用。详见http://codeigniter.com/user_guide/general/hooks.html

但是,这将使您无法简单地显示两个调用的任何结果。