2012-02-23 83 views

回答

0

的元素是当查看有代码HTML和PHP反复,requestAction是一个比一个大的功能,当集成的插件。但你不能滥用requestAction。

示例元素:

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

例如requestAction:

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

嗨del_dan,感谢您的答复,但我不太明白你的答案。也许如果我详细说明。我有一张我想在差异显示的文章表。取决于哪家公司创作的视图。现在我在视图中调用一个requestAction,因为为每个文章列表创建一个元素似乎很费力。 – jezza 2012-02-23 09:01:08

+0

在你的情况下,最好是requestAction,因为你在控制器中使用了一个函数。 – 2012-02-23 09:29:32

0

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

requestAction()由调度具有给定参数(例如,URL)蛋糕请求在蛋糕内部进行完整的请求。在这里,您还可以调整缓存,并且可以选择将呈现的视图或控制器的操作返回值作为requestAction()的返回值。

恕我直言,这个功能 - 在正确使用时 - CakePHP的是一个非常小众的功能,你可以创建部分网站。例如。一个动作渲染的评论,一个动作呈现帖子的身体,一个动作渲染菜单,一个动作,要求所有的这些,并把它变成一个单一的DIV,一个动作,要求格并将其放入布局。可以高效地缓存每个图层,并且这种设计对AJAX非常有用,您总是只想加载页面的某些部分,但在第一次加载页面时需要加载所有这些部分。你甚至可以有每个的JSON和HTML表示。

+0

嗨西比迪巴,谢谢你的信息。那是我的计划,打破了一切。我想我试图拥有尽可能少的ctp文件,并通过缓存等方式实现性能最大化。我担心的是,当网站遇到严重的流量时,这种方法会比其他方式更好。 – jezza 2012-02-24 02:44:02

相关问题