CGridView 分享ajax翻页优化技巧

CGridView默认翻页使用的是ajax返回完整的html内容,然后截取grid部分的html做替换实现翻页效果~

毋庸置疑,这样做是一个很好的技巧,可以充分发挥php组件的先天优势,原来纯js组件所需的大量js代码可以被省略~

但,默认情况下,是整个页面返回,包括layout,clientScript生成的js、css等等代码,

这无疑是让服务器增加了负担~

鉴于以上考虑,结合yii的强大api,做了一下的优化处理方案,再次抛砖引玉了~


$renderCallback=Yii::app()->request->isAJAXRequest?'renderPartial':'render';

call_user_func(array($this,$renderCallback),'index',array(

    'dataProvider'=>$dataProvider,

));

赞!如下代码可能更易读:




$render=Yii::app()->request->isAjaxRequest ? 'renderPartial' : 'render';

$this->$render('index', array(

    'dataProvider'=>$dataProvider,

));



谢谢老大的赞赏~ ::)

好主意,对于actionAdmin也可这么用,如:




$render=Yii::app()->request->isAjaxRequest ? 'renderPartial' : 'render';

$this->$render('admin', array(

	'model'=>$model,

));



新手路过!学习了 :lol:

学习!

:huh:

Good!

$this->$render 这种写法好像只能在php5.3以上用吧

::)

这个细节很重要。。

老帖就别翻了吧。。。。。这个功能可能 1.1.7都修复了。。。

学习了!

马克!

学习了啊!