ruby-on-rails - 在具有 RoR 的大型项目中使用 ExtJS 的危险?

标签 ruby-on-rails ruby extjs ria rich-internet-application

我们正在使用 Ruby on Rails 框架(CRM 系统)开发一个相当大的应用程序,并正在考虑重写它以使用 ExtJS,这样 Rails 将只进行数据处理,而 ExtJS 将在桌面上完成所有浏览器的繁重工作-喜欢举止。

任何人都有一些关于什么是最佳方法的经验和提示? ExtJS 是否足够成熟以用于相对较大(和复杂)的应用程序?那么 Rails 部分呢 - 这里最好的方法是什么?

编辑:

只是为了说清楚。我更愿意以这样一种方式来加载所有 javascript 客户端应用程序代码(在应用程序启动时,最好作为一个压缩的 js 文件),然后只使用 ajax 将数据发送到 Rails 或从 Rails 发送数据应用程序。此外,如果 ERB 可用于动态生成 Ext 应用程序元素,那就太好了。

最佳答案

我目前有一个用 ExtJS 编写的非常大的桌面风格应用程序。它曾经在 Perl 的 Catalyst MVC 框架之上运行,但是一旦整个 View 层转换为基于 ExtJS 的桌面,我就开始迁移到 Ruby on Rails 模型和 Controller 。它同样快,甚至更快,并且更易于维护,并且代码库更小。

  • 确保将事件记录配置设置为不在 json 中包含模型的根名称,以便 Ext 的 JsonStore 读取记录没有问题。 ActiveRecord BASE 上有一个名为 include_root_in_json 的选项,您必须将其设置为 false。

  • 确保您在 Ext 中正确定义了您的应用程序类并最大化代码重用,并且您将需要某种方法来清理 DOM 中未使用的节点。除非您使用最新版本的 Safari 或 Firefox 3.1,否则 Javascript 性能可能是一个真正的痛苦。

  • 您可能需要某种缓存方法,以便在加载页面时将服务器上的数据以 JSON 格式提供给您的应用程序。这将减少通过 Ajax 的往返次数。

  • 一定要使用 Ext 的 WindowManager 和 StoreManager 对象,或者从 Ext.util.MixedCollection 中自己滚动

  • 在单独的、可管理的文件中开发您的代码,然后有一个构建过程将它们组合成一个文件,然后在其上运行 YUI 的压缩器或 Dean Edwards Packer 以压缩/混淆文件。在它们自己的单个文件中提供所有 JS 和 CSS,包括 Ext 提供的文件。

关于ruby-on-rails - 在具有 RoR 的大型项目中使用 ExtJS 的危险?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/182571/

相关文章:

gridview - extjs 分组网格的组头复选框

ExtJS 3 - 文件上传

ruby-on-rails - Ruby on Rails 的 Limesurvey 替代方案?

ruby-on-rails - 如何使用带有变体的 Imagemagick 命令行选项创建裁剪和居中的图像?

ruby-on-rails - 提高此服务器代码的性能以查找域?

ruby - Ruby 中的“通过引用传递参数”?

ruby-on-rails - 如何更改我的自定义错误 html 使其不呈现两次?

java - ruby 中是否有类似 Java Quartz 的东西?

ruby - VSCode : Rubocop version of project gem seems to differ from version vscode uses

javascript - 如何在 Extjs 中完全清除图表?