Cake返回了JQuery Alert Box中数据查找所消耗的时间

时间:2010-05-30 19:41:55

标签: cakephp

当我在Cakephp中对JQuery Ajax进行一些自学习时,
我在JQuery Alert Box中发现了一些奇怪的行为。

以下是我使用的JQuery Ajax的几行代码:

 $(document).ready(function(){  
        $(document).change(function(){ 
            var usr = $("#data\\[User\\]\\[name\\]").val();
            $.post{"http://www.mywebsite.com/controllers/action/",
                usr,
                function(msg){alert(msg);}
            }
        });
    });   

警告框显示从操作返回的消息:

  

Helloworld <!--0.656s-->

我不知道为什么消耗时间显示在警告框中,为什么 因为它不在我的代码中如下:

function action($data=null){
    $this->autoRender = false;
    $result2=$this->__avail($data);           
    if($result2==1)
        {return "OK";}
    else
        {return "NOT";}           
}

CakePHP在“警报”框中提供了一些额外信息。

后来我修改了一行代码,然后尝试了这个代码 然后在屏幕上显示时间消耗:

$(document).ready(function(){  
            $(document).change(function(){ 
                var usr = $("#data\\[User\\]\\[name\\]").val();
                $.post{"http://www.mywebsite.com/controllers/action/",
                    usr,
                    function(msg){$("#username").append('<span>'+msg+</span'>);}
                }
            });
        });   

1 个答案:

答案 0 :(得分:2)

这很正常。 CakePHP通常为每个视图插入一个时间戳。只需将Configure::write('debug', 0)添加到操作的第一行即可避免插入时间戳。

所以你的行动应该是这样的:

function action($data=null){
  Configure::write('debug', 0)
  $this->autoRender = false;
  $result2=$this->__avail($data);           
  if($result2==1) {return "OK";}
  else {return "NOT";}           
}

如果您的操作是针对Ajax请求以及正常的Http请求:

function action($data=null){
  if($this->RequestHandler->isAjax()) {
    Configure::write('debug', 0)
    $this->autoRender = false;
    $result2=$this->__avail($data);           
    if($result2==1) {return "OK";}
    else {return "NOT";}           
  } else {
    //Not Ajax Request. 
  }
}

还要确保将RequestHandler添加到AppController中的components变量中。

var $components = array('RequestHandler', . . . . . . );