2009-07-30 31 views

回答

4

Henry,我让我的Ajax请求代理我的模型对象。通常,当我这样做时,我处于“框架”之外。这就是说,它可能(非常)需要利用你的框架,比如在一组安全模型中工作。

+6

*每一次*我试图直接去CFC,我后悔了。 Cutter关于安全性的观点并不容忽视。你提到ColdBox和“复杂性”,但我没有看到代理如何增加复杂性。对我而言,它极大地简化了事情:在委托给任何代码执行实际工作的代理中添加一个新函数,然后呈现结果。这就是像ColdBox这样的框架闪耀的地方。 – 2009-07-30 03:41:28

2

在MVC框架的“视图”的目的是“模型”和“控制器”生成后的数据。如果你不需要“视图”,那么使用这种设计模式有什么意义?

+0

我能想到的唯一一点是,MVC框架将提供单例服务,并可能有一些身份验证支持......不知道是否缺少其他任何好处。 – Henry 2009-07-30 01:02:02

+1

但是,为什么你不需要“查看”Ajax请求? – 2009-07-30 01:05:20

+0

@LucaMatteis的'视图'可能更恰当地被称为'表示层',或者换句话说,被呈现回客户端的东西。使用设计模式可以分离有利于可维护性的问题,即使您想要使用JavaScript函数而不是浏览器的布局引擎来渲染回来的内容。 – jinglesthula 2013-12-05 17:01:48

0

我同意卢卡。它也会绕过您在MC堆栈中的任何一种消毒和过滤逻辑。它基本上否定了您可能或可能没有的任何种类的查询处理。

4

我无法真正看到绕过MVC框架的任何好处 - 组合起来,这三个元素您的应用程序。

你的ajax元素真的是视图的一部分。正如Luca所说,视图输出模型和控制器的结果。

这样看 - 如果你制作了一个iPhone友好的网页界面(即一个新的视图),你会绕过模型和控制器吗?

4

路易斯Majano,冷箱said的创作者:

这些AJAX 相互作用亨利的两个校。

我更喜欢代理的方法,因为它 增加了以下内容:

  1. 调试
  2. 跟踪在调试器
  3. AOP拦截点
  4. 安全
  5. 设置可用性
  6. 代理会中继到事件模型,所以我可以使用本地拦截 点,当地的AOP,插件等

换句话说,它可以是一个简单的 服务CFC调用,你仍然可以做 的高度 监控呼叫代替。

我来说,爱有我的执行 Profiler运行(冷箱 调试器的一部分),这样我就可以看到,当AJAX请求 进来,当他们来到 出来。我可以看到请求的数据和 的数据发回。我不必 看日志文件,或尝试想象 结果或问题。它真的帮助 进行调试。

然而,这将是一个开发人员 选择你决定去哪种方式。 我个人的偏好是总是使用我的代理 事件代表团 ,因为它给了我更多的灵活性,调试和宁静的 头脑。

+0

正确使用时,冷箱代理非常强大。尽管我发送了所有的ajax调用。它可以帮助我保持我的代码组织,并允许我监控所有。就像路易斯说的那样,它让我安心。 – JoshHighland 2011-08-31 20:57:08

0

是啊,我也不会绕过你的框架,弄清楚发生了什么令你悲伤和追捕犯罪片,添加逻辑,以排除常见的组件,如页眉或页脚,并寻找注入空白的方法,虽然罚款对于html来说,在解析json的时候会很烦人或者向下。

特别是在application.cfc中添加output =“false”,它的方法将是我清理的第一件事。

我坚信永远不会直接直接访问CFC,当主要重构可能希望整合或消除组件时,我发现它会产生长期问题,直接访问可能会使它比应该更难,特别是如果第三方正在从另一个域(例如,flash远程)触发你的ajax。

+1给Steve的回答。