【问题标题】:How to apply a MVC architecture to a ExtJS project?如何将 MVC 架构应用于 ExtJS 项目?
【发布时间】:2009-09-08 08:53:07
【问题描述】:

我想使用著名的 JavaScript 库 ExtJS 构建一个 Web 项目。目标是仅使用 ExtJS(以及一些 CSS 和 HTML)来构建整个客户端 Web 应用程序。我也想在这个项目的代码中应用一个模型-视图-控制器结构。

第一个问题:将这样的架构应用到 ExtJS 项目中是否可行且相关?

第二个问题:如何轻松地将 MVC 架构应用到 ExtJS 项目中?

我已经阅读了this,但它没有回答我的问题。

ExtJS 社区的文档没有提供这样的提示。 在所有给定的示例中,代码都包含在一个文件中,并且 UI 代码没有与应用程序逻辑代码分离。例如,侦听器方法和对服务器的调用随 UI 代码一起提供。

事实上,所有将应用程序逻辑与用户界面代码分开的技巧都是受欢迎的。

编辑

另一个问题:您认为设计基于 ExtJS 的 Web 应用程序的最佳方式是什么?我没有为 ExtJS 找到任何好的设计师。我找到的设计师(thisthis)似乎并不可靠(第一个的代码生成有时会失败)。

【问题讨论】:

    标签: javascript extjs


    【解决方案1】:

    根据我的经验,您需要考虑两个独立的应用程序。

    在服务器端,您想设计一个非常典型的 MVC 应用程序,它只提供 Web 服务。你可能只是说 JSON 没问题。考虑以 REST 的方式做事。

    在客户端,您有一个 javascript 应用程序。如果你真的在使用 ExtJS,你应该只有一个初始请求/响应来设置应用程序。从那时起,一切都应该只是对您的 Web 服务的 XHR 请求(如果您喜欢延迟加载 ExtJS 驱动的 javascript 文件)。

    当您突然想要打开一个公共 Web 服务或编写一些替代客户端(例如 iPhone 应用程序)时,这种架构将物有所值。这些替代客户端应该能够依赖已经运行的 Web 服务。

    切换到客户端,ExtJS 驱动的东西——MVC 在这里可以帮助你,但是你正在从一个请求驱动的系统(在服务器上)进行心理上下文切换,到一个更开放的事件- 浏览器中的驱动系统。

    使用许多 ExtJS 社区谈论的实践(智能使用工厂方法、扩展内置类、模块模式、ExtJS 的模板方法等)。

    在组织您的 javascript 应用程序时,尝试以 MVC 的方式进行思考。了解事件冒泡和 relayEvents() 是如何工作的。你有你的模型东西(基本上,它们将派生自内置存储类)、视图东西(网格、树等)和控制器东西(通常附加到某个容器。阅读 Saki 的关于组件间的东西在 extjs.eu 进行交流。)

    当涉及到重量级的客户端应用程序设计时,肯定有不止一种方法可以做到这一点。但是,如果您想认真利用 ExtJS 的潜力,花时间阅读内容是值得的。一般看一下关于 GUI 编程的文章或书籍——编写 ExtJS 应用程序更像是编写一个传统的桌面应用程序,而不是编写一个 Web 应用程序。

    在这个域中,“网络”的东西变得非常简单——你只是在服务器端处理数据。棘手的事情是弄清楚如何组织和优化浏览器内的代码。

    【讨论】:

      【解决方案2】:

      使用一些制作 javascript OOP 语言的库。然后使用 MVC 模式。您也可以使用 Ext-GWT 在 OOP java 上开发 web。

      【讨论】:

      • JavaScript 已经是一种面向对象的语言。不知道你的意思...
      • ExtJS 甚至使用了经典的继承建模。
      猜你喜欢
      • 2023-03-23
      • 1970-01-01
      • 2010-10-01
      • 2011-09-17
      • 2013-01-24
      • 2015-03-15
      • 1970-01-01
      • 1970-01-01
      • 2015-04-02
      相关资源
      最近更新 更多