我想使用着名的JavaScript库ExtJS构建一个Web项目.目标是仅使用ExtJS(以及一些CSS和HTML)来构建整个客户端Web应用程序.我还想将Model-View-Controller结构应用于该项目的代码.
第一个问题:将这样的架构应用于ExtJS项目是否可行且相关?
第二个问题:我如何轻松地将MVC架构应用于ExtJS项目?
我已经读过这篇文章,但它没有回答我的问题.
ExtJS communauty的文档没有提供这样的提示.在所有给定的示例中,代码包含在一个文件中,UI代码不与应用程序逻辑代码分开.例如,侦听器方法和对服务器的调用带有UI代码.
实际上,欢迎将应用程序逻辑与用户界面代码分开的所有提示.
编辑:另一个问题:您认为设计基于ExtJS的Web应用程序的最佳方式是什么?我没有为ExtJS找到任何好的设计师.我发现的设计者(这个和这个)似乎不可靠(第一个的代码生成有时会失败).
谢谢
根据我的经验,您想要考虑两个单独的应用程序.
在服务器端,您希望设计一个非常典型的MVC应用程序,它只提供一个Web服务.你可能只是在谈论JSON.考虑RESTful做事.
在客户端,您有一个JavaScript应用程序.如果您真的在利用ExtJS,那么您应该只有一个初始请求/响应来设置应用程序.从那时起,一切都应该是对您的Web服务的XHR请求(如果您正在变得花哨,延迟加载ExtJS驱动的javascript文件).
当突然想要打开公共Web服务或编写一些替代客户端(例如iPhone应用程序)时,这种架构将为自己付出代价.这些替代客户端应该能够依赖已经运行的Web服务.
切换到客户端,ExtJS驱动的东西 - MVC可以在这里帮助你,但你正在从请求驱动的系统(在服务器上)转换到更开放的事件驱动系统的心理上下文在浏览器中.
使用ExtJS社区讨论的许多实践(智能使用工厂方法,扩展内置类,模块模式,ExtJS的模板方法等).
在组织您的javascript应用程序时,尝试以MVC的方式进行思考.了解事件冒泡和relayEvents()如何工作.你有你的模型东西(基本上,它们将来自内置的商店类),查看东西(网格,树等)和控制器东西(通常附加到一些容器.阅读Saki关于组件间的东西在extjs.eu上进行沟通.)
在重量级客户端应用程序设计方面,肯定有不止一种方法可以实现.但如果你想认真利用ExtJS的潜力,那么花时间阅读一些事情是值得的.查看有关GUI编程的文章或书籍 - 编写ExtJS应用程序与编写传统桌面应用程序更相似,而不是编写Web应用程序.
在这个领域,"网络"的东西变得非常简单 - 你只是在服务器端处理数据.棘手的事情是弄清楚如何组织和优化浏览器中的代码.