2011-04-01 68 views
2

是否可以根據請求是否是AJAX來告訴CakePHP加載不同的組件/助手?僅當請求不是AJAX時才包含CakePHP組件?

顯然你不能使用RequestHandler :: isAjax,因爲RequestHandler本身就是一個組件!

我的擔心是性能 - 我是否認爲裝載所有組件(我在大多數控制器中大約有4-6個)會對速度造成阻礙?

我想到的一個想法是創建一個AjaxController,使用最少的組件和沒有幫助程序,但是這看起來有點髒?

感謝

回答

1

我建議你使用默認的RequestHandlerComponent,讓在需要時加載其他組件。只加載RH組件不會影響您的系統。在任何情況下,您都不應該嘗試微調優化這些東西。

此外,根據您有哪種JS設置,大多數JS庫會發送一個X-Requested-With,其值設置爲XMLHttpRequest。你也可以找到它。

就我個人而言,我認爲RequestHandlerComponent是最好的方法。

+0

謝謝,根據你的建議,我只包含了RequestHandlerComponent和沒有助手。在AppController :: beforeFilter中,我檢查請求類型,如果它不是ajax,則加載我需要的組件和幫助程序。 – Will 2011-04-01 15:43:51

相關問題