PHP在后台获取数据

时间:2012-07-21 04:53:05

标签: php cakephp fetch cakephp-2.1

我们正在构建Google Analytics应用。当我们从另一个来源获取数据并在向用户显示之前进行一些计算时,用户需要等待30秒。

当我们在后台获取数据时,我们是否可以向用户显示等待页面,而不是在我们获取数据时将页面加载30秒。

任何人都能说明如何做到这一点吗?

2 个答案:

答案 0 :(得分:1)

一种方法是使用AJAX使用HTTP GET请求轮询服务器上的页面。

您可以使用数据库,甚至更好APC

编辑:

由于我们不是在讨论文件上传,因此Session可能是比APC_UPLOAD_PROGRESS更好的选择。会话提供了每个用户存储,这应该是理想的,并且可以由APC等不同的商店支持。

答案 1 :(得分:1)

注意:对于灯箱,您必须包含灯箱js

     <script>
    function onload_wating()
    {
    var syncronize_target=SITE_URL+'your_controllername/action_timer/';

    $.lightbox(syncronize_target, {
                width   : 450,
                height  : 260,
                'modal' : true,
                'onOpen'  : function() {    
                    $(".jquery-lightbox-button-close").css({"visibility":"hidden","display":"none"});
                }
            });
      }

    onload_wating();
    <script>

action_timer.ctp

注意:对于倒计时,您必须包含jquery倒计时 - &gt; http://keith-wood.name/countdown.html

     <script>
     $(function () {    
        $('#syncronize_header_timer').countdown(
                {
                until:+50,
                format: 'MS',
                onExpiry: ltliftOff
                }); 
    });

        function ltliftOff() {

            $.lightbox().close();
        }

    <script>
 <div id="syncronize_header_timer" ></div>

==========================================

在onload_wating()上面打开灯箱并对你的控制器动作进行ajax查询并打开action_timer.ctp

在action_timer.ctp中,我们使用倒数计时器。 此计时器计数到50,然后自动关闭。

在这50秒之间,你可以从数据库中检索你的数据。