您是通過選擇的MVC框架還是直接向CFC發送ajax請求?Ajax請求,通過MVC框架(例如ColdBox)或不?
我傾向於繞過MVC,因爲我不需要'查看'從ajax請求。
什麼是通過MVC框架,如Coldbox路由Ajax調用的親?
更新:找到了這個網頁http://ortus.svnrepository.com/coldbox/trac.cgi/wiki/cbAjaxHints但我仍然試圖在總結我的腦海圍繞什麼好處,它帶來了比它引入了複雜性...
您是通過選擇的MVC框架還是直接向CFC發送ajax請求?Ajax請求,通過MVC框架(例如ColdBox)或不?
我傾向於繞過MVC,因爲我不需要'查看'從ajax請求。
什麼是通過MVC框架,如Coldbox路由Ajax調用的親?
更新:找到了這個網頁http://ortus.svnrepository.com/coldbox/trac.cgi/wiki/cbAjaxHints但我仍然試圖在總結我的腦海圍繞什麼好處,它帶來了比它引入了複雜性...
Henry,我讓我的Ajax請求代理我的模型對象。通常,當我這樣做時,我處於「框架」之外。這就是說,它可能(非常)需要利用你的框架,比如在一組安全模型中工作。
在MVC框架的「視圖」的目的是秀「模型」和「控制器」生成後的數據。如果你不需要「視圖」,那麼使用這種設計模式有什麼意義?
我能想到的唯一一點是,MVC框架將提供單例服務,並可能有一些身份驗證支持......不知道是否缺少其他任何好處。 – Henry 2009-07-30 01:02:02
但是,爲什麼你不需要「查看」Ajax請求? – 2009-07-30 01:05:20
@LucaMatteis的'視圖'可能更恰當地被稱爲'表示層',或者換句話說,被呈現回客戶端的東西。使用設計模式可以分離有利於可維護性的問題,即使您想要使用JavaScript函數而不是瀏覽器的佈局引擎來渲染回來的內容。 – jinglesthula 2013-12-05 17:01:48
我同意盧卡。它也會繞過您在MC堆棧中的任何一種消毒和過濾邏輯。它基本上否定了您可能或可能沒有的任何種類的查詢處理。
我無法真正看到繞過MVC框架的任何好處 - 組合起來,這三個元素是您的應用程序。
你的ajax元素真的是視圖的一部分。正如Luca所說,視圖輸出模型和控制器的結果。
這樣看 - 如果你製作了一個iPhone友好的網頁界面(即一個新的視圖),你會繞過模型和控制器嗎?
路易斯Majano,冷箱said的創作者:
這些AJAX 相互作用亨利的兩個校。
我更喜歡代理的方法,因爲它 增加了以下內容:
- 調試
- 跟蹤在調試器
- AOP攔截點
- 安全
- 設置可用性
- 代理會中繼到事件模型,所以我可以使用本地攔截 點,當地的AOP,插件等
換句話說,它可以是一個簡單的 服務CFC調用,你仍然可以做 的高度 監控呼叫代替。
我來說,愛有我的執行 Profiler運行(冷箱 調試器的一部分),這樣我就可以看到,當AJAX請求 進來,當他們來到 出來。我可以看到請求的數據和 的數據發回。我不必 看日誌文件,或嘗試想象 結果或問題。它真的幫助 進行調試。
然而,這將是一個開發人員 選擇你決定去哪種方式。 我個人的偏好是總是使用我的代理 事件代表團 ,因爲它給了我更多的靈活性,調試和寧靜的 頭腦。
正確使用時,冷箱代理非常強大。儘管我發送了所有的ajax調用。它可以幫助我保持我的代碼組織,並允許我監控所有。就像路易斯說的那樣,它讓我安心。 – JoshHighland 2011-08-31 20:57:08
是啊,我也不會繞過你的框架,弄清楚發生了什麼令你悲傷和追捕犯罪片,添加邏輯,以排除常見的組件,如頁眉或頁腳,並尋找注入空白的方法,雖然罰款對於html來說,在解析json的時候會很煩人或者向下。
特別是在application.cfc中添加output =「false」,它的方法將是我清理的第一件事。
我堅信永遠不會直接直接訪問CFC,當主要重構可能希望整合或消除組件時,我發現它會產生長期問題,直接訪問可能會使它比應該更難,特別是如果第三方正在從另一個域(例如,flash遠程)觸發你的ajax。
+1給Steve的回答。
*每一次*我試圖直接去CFC,我後悔了。 Cutter關於安全性的觀點並不容忽視。你提到ColdBox和「複雜性」,但我沒有看到代理如何增加複雜性。對我而言,它極大地簡化了事情:在委託給任何代碼執行實際工作的代理中添加一個新函數,然後呈現結果。這就是像ColdBox這樣的框架閃耀的地方。 – 2009-07-30 03:41:28