Включить компоненты CakePHP только в том случае, если запрос не AJAX? - PullRequest
2 голосов
/ 01 апреля 2011

Можно ли сказать CakePHP загружать различные компоненты / помощники в зависимости от того, является ли запрос AJAX или нет?

Очевидно, что вы не можете использовать RequestHandler :: isAjax, поскольку сам RequestHandler является компонентом!

Меня беспокоит производительность - правильно ли я считаю, что загрузка всех компонентов (у меня в контроллерах их примерно 4-6) будет тормозить скорость?

Одна идея, о которой я подумал, - создать AjaxController с минимальными компонентами и без помощников, но это выглядит немного грязно?

Спасибо

Ответы [ 2 ]

2 голосов
/ 01 апреля 2011
1 голос
/ 01 апреля 2011

Я предлагаю вам использовать RequestHandlerComponent по умолчанию и позволить ему загружать другие компоненты, если это необходимо.Загрузка только компонента RH не повлияет на вашу систему.Вы не должны пытаться микро оптимизировать этот материал сразу же в любом случае.

Кроме того, в зависимости от того, какая у вас установка JS, большинство библиотек JS отправляют X-Requested-With со значением, установленным на XMLHttpRequest.Вы могли бы искать это также.

Лично я думаю, что RequestHandlerComponent - лучший подход.

...