requestAction和在cakephp中使用元素之间的区别



有人能进一步告诉我在视图中直接调用requestAction和使用元素之间的区别吗?我看得出来这里已经提到了。过度使用requestAction是否存在真正的性能问题?我使用的是蛋糕2.0.6

该元素用于当View中有代码html和php重复时,requestAction用于集成插件而不是大型功能时。但是你不能滥用requestAction。

示例元素:

echo $this->element("footer", array('var'=> 1));
// element footer, raisin in the array var

示例请求操作:

echo $this->requestAction('/comments/add/'.$_model.'/'.$_foreignKey, array('return'));
// plugin comments, function add function

element()只加载一个元素;即视图片段。这几乎就像你将.ctp复制粘贴到你使用它的地方一样。唯一的区别是你可以调整缓存行为,并根据自己的喜好传递选定的视图变量。

requestAction()在cake内部执行一个完整的请求,方法是用给定的参数(例如URL)调度一个cake请求。在这里,您还可以调整缓存,并可以选择将渲染视图或控制器的操作返回值作为requestAction()的返回值。

IMHO这个功能——如果使用得当——是CakePHP的一个非常小众的功能,因为你可以分部分创建网站。例如,一个操作呈现评论,一个动作呈现帖子正文,一个行动呈现菜单,一个请求所有这些并将其放入单个div的行动,一个要求该div并将其置于布局的行动。每一层都可以有效地缓存,这样的设计在AJAX中非常有效,因为您总是喜欢只加载页面的某些部分,但在第一次加载页面时需要全部加载。您甚至可以分别使用JSON和HTML表示。

最新更新