jerry2801
(Jerry2801)
1
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,
));
qiang
(Qiang Xue)
2
赞!如下代码可能更易读:
$render=Yii::app()->request->isAjaxRequest ? 'renderPartial' : 'render';
$this->$render('index', array(
'dataProvider'=>$dataProvider,
));
yiiz
(Cnyuzhiwei)
4
好主意,对于actionAdmin也可这么用,如:
$render=Yii::app()->request->isAjaxRequest ? 'renderPartial' : 'render';
$this->$render('admin', array(
'model'=>$model,
));
wengee
(Wengee)
9
$this->$render 这种写法好像只能在php5.3以上用吧
lygmqkl
(Lygmqkl)
12
老帖就别翻了吧。。。。。这个功能可能 1.1.7都修复了。。。