2

您是通过选择的 MVC 框架还是直接向 CFC 发出 ajax 请求?

我倾向于绕过 MVC,因为我不需要来自 ajax 请求的“视图”。

通过 MVC 框架(如 Coldbox)路由 ajax 调用的优点是什么?

更新:找到此页面http://ortus.svnrepository.com/coldbox/trac.cgi/wiki/cbAjaxHints但我仍在努力思考它带来的复杂性带来的好处......

4

6 回答 6

4

ColdBox 的创建者 Luis Majano

这是ajax交互亨利的两个流派。

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

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

换句话说,它可以是一个高度监控的调用,而不是一个简单的服务 cfc 调用,您仍然可以这样做。

一方面,我喜欢让我的执行分析器运行(冷箱调试器的一部分),这样我就可以看到 ajax 请求何时进入以及何时出现。我可以看到请求的数据和发回的数据。我不必查看日志文件,也不必尝试想象结果或问题。它确实有助于调试。

但是,您决定采用哪种方式将是开发人员的选择。我个人的偏好是始终使用我的代理进行事件委托,因为它给了我更多的灵活性、调试和安心。

于 2009-07-30T22:32:09.983 回答
4

亨利,我向我的模型的代理对象发出 Ajax 请求。通常,这样做时我在“框架”之外。话虽如此,可能(非常)有必要利用您的框架,例如在设置的安全模型中工作。

于 2009-07-30T02:22:59.490 回答
4

我真的看不出绕过 MVC 框架有什么好处——结合起来,这三个元素就是你的应用程序。

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

这么看——如果你做了一个 iPhone 友好的 web 界面(也就是一个新的 View),你会绕过模型和控制器吗?

于 2009-07-30T02:50:28.500 回答
2

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

于 2009-07-30T00:58:34.767 回答
0

我同意卢卡。它还绕过了 MC 堆栈中的任何类型的清理和过滤逻辑。它基本上否定了您可能拥有或未实施的任何类型的查询处理。

于 2009-07-30T01:00:58.170 回答
0

是的,我不会绕过你的框架,找出导致你悲伤的原因并寻找有问题的部分,添加逻辑以排除页眉或页脚等常见组件,并寻找注入空白的方法,虽然这对 html 来说很好,但很烦人或下降解析json时有问题。

添加 output="false" 特别是在您的 application.cfc 和它的方法将是我清理的第一件事。

我坚信从不直接直接访问 CFC,我发现当一个主要的重构可能想要整合或消除组件时,它会产生长期问题,直接访问可能会使这比它应该的更难,特别是如果第三方是从另一个域(例如闪存远程处理)中访问您的 ajax。

+1 史蒂夫的回答。

于 2009-11-06T02:33:58.220 回答