Данные макета cakePHP, используя requestAction, есть другой способ? - PullRequest
0 голосов
/ 28 марта 2011

Это известная проблема, requestAction - пустая трата ресурсов. однако мне нужны динамические данные в макете по умолчанию. Для этого я использую элементы с запросами requestAction.
Это единственный способ?

Ответы [ 2 ]

1 голос
/ 21 июня 2011

Нет ничего плохого в requestAction, просто очень просто вызвать его неэффективно и снизить производительность вашего приложения.Как это работает, вы в конечном итоге получите монстр-объекты, набухшие от свойств и т. Д. - вещи, которые вам не нужны и, вероятно, не потянули бы, если бы вы поняли, что это произойдет именно так.Сколько разработчиков не потратят три лишних секунды, чтобы набрать $ this-> Other-> Model->, если это избавит вас от возможных попыток отладки одного из этих гигантских объектов?

85 раз из 100, естьболее эффективный (производительность приложения) способ сделать все, что вам нужно, для выполнения requestAction ().На самом деле есть еще один метод, встроенный в торт, который делает почти то же самое, только он предназначен для использования в контроллерах, и если я смогу его найти, я сделаю ссылку ...

Редактировать Iне могу найти это.Это что-то немного неясное.

Ответ / предложение на ваш вопрос, избегая requestAction, особенно легко в представлениях / элементах.

Если данные менее абстрактны и более динамичны, ajax -> вызов вашего контроллера / метода, передайте любойданные и т. д., извлеките ваш динамический результат.

Если данные сильно абстрактны или применимы - так, что вам это нужно в макете по умолчанию - рассмотрите возможность засовывания их в свой AppController или даже в загрузчик.Вероятно, это гораздо более эффективное решение - отодвинуть его от стадии процесса, а не грести вверх по течению, чтобы получить его на стадии рендеринга.

Компоненты / помощники, конечно, могли бы стать еще одним способом позиционирования нескольких контроллеров +выборка данных представления на уровне макета.

HTH :)

1 голос
/ 28 марта 2011

Я считаю, что requestAction - хороший инструмент.Большинство сред MVC даже не думают о необходимости показывать несколько фрагментов контента, и в большинстве случаев это необходимо в одном макете.Я не уверен, как это тратит ресурсы и почему документация заставляет вас думать, что это узкое место в производительности.Используйте кеширование с правильными ключами, и это должно сработать.

...