cakePHP布局数据,使用requestAction,还有另外一种方法吗?

时间:2011-03-28 06:35:40

标签: cakephp elements

我是一个已知问题,requestAction是一种资源浪费。但是,我在默认布局中需要一些动态数据。我使用的是元素,请求使用requestAction 这是唯一的方法吗?

2 个答案:

答案 0 :(得分:1)

我相信requestAction是一个很好的工具。大多数MVC框架甚至没有想到显示多个内容的需要,因此在单个布局中确实需要大多数情况。 我不确定它是如何浪费资源的,以及为什么文档会让你相信它是一个性能瓶颈。使用正确的密钥进行缓存,它应该可以解决问题。

答案 1 :(得分:1)

requestAction没有任何问题,只是非常容易无效地调用它并使应用程序的性能更加突出。它的工作方式,你最终会得到带有属性等的怪物对象 - 你不需要的东西,如果你意识到它会发生这种情况,可能就不会被拉出来。有多少开发人员不会花费额外的三秒钟来输入$ this-> Other-> Model->如果它让你免于试图调试其中一个巨大的对象?

100次中有85次,有一种更有效(app性能)的方式来做你需要requestAction()做的事情。实际上还有另一种内置于蛋糕中的方法几乎完全相同,只是它意味着在控制器中使用,如果我能找到它,我会链接......

编辑我似乎无法找到它。这有点模糊不清。

回答/建议你的问题,避免在视图/元素中使用requestAction特别容易。

如果数据不那么抽象且更具动态性,那么ajax - >调用你的控制器/方法,传递任何数据等,获取你的动态结果。

如果数据非常抽象或适用 - 您需要在默认布局中使用它 - 请考虑将其放入AppController甚至引导程序中。这可能是一个更有效的解决方案 - 从流程阶段推动它,而不是在上游划动它以使其处于渲染阶段。

组件/帮助器当然是另一种定位多控制器+布局级视图数据的方法。

HTH :)