是否可以根據請求是否是AJAX來告訴CakePHP加載不同的組件/助手?僅當請求不是AJAX時才包含CakePHP組件?
顯然你不能使用RequestHandler :: isAjax,因爲RequestHandler本身就是一個組件!
我的擔心是性能 - 我是否認爲裝載所有組件(我在大多數控制器中大約有4-6個)會對速度造成阻礙?
我想到的一個想法是創建一個AjaxController,使用最少的組件和沒有幫助程序,但是這看起來有點髒?
感謝
是否可以根據請求是否是AJAX來告訴CakePHP加載不同的組件/助手?僅當請求不是AJAX時才包含CakePHP組件?
顯然你不能使用RequestHandler :: isAjax,因爲RequestHandler本身就是一個組件!
我的擔心是性能 - 我是否認爲裝載所有組件(我在大多數控制器中大約有4-6個)會對速度造成阻礙?
我想到的一個想法是創建一個AjaxController,使用最少的組件和沒有幫助程序,但是這看起來有點髒?
感謝
我建議你使用默認的RequestHandlerComponent,讓在需要時加載其他組件。只加載RH組件不會影響您的系統。在任何情況下,您都不應該嘗試微調優化這些東西。
此外,根據您有哪種JS設置,大多數JS庫會發送一個X-Requested-With
,其值設置爲XMLHttpRequest
。你也可以找到它。
就我個人而言,我認爲RequestHandlerComponent
是最好的方法。
謝謝,根據你的建議,我只包含了RequestHandlerComponent和沒有助手。在AppController :: beforeFilter中,我檢查請求類型,如果它不是ajax,則加載我需要的組件和幫助程序。 – Will 2011-04-01 15:43:51