您是通过选择的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