代码之家  ›  专栏  ›  技术社区  ›  Milan Novota

在具有RoR的大型项目上使用ExtJS的危险?

  •  22
  • Milan Novota  · 技术社区  · 16 年前

    编辑:

    我只是想说清楚。我更愿意这样做,即一次加载所有javascript客户端应用程序代码(在应用程序启动时,最好是作为一个压缩的js文件),然后使用ajax向Rails应用程序发送数据和从Rails应用程序发送数据。另外,有ERB可用于动态生成Ext应用程序元素也很好。

    10 回复  |  直到 16 年前
        1
  •  29
  •   echristopherson    12 年前

    • 确保将活动记录配置设置为不在json中包含模型的根名称,以便Ext的JsonStore读取记录时不会出现问题。ActiveRecord BASE上有一个名为 include_root_in_json

    • 确保在Ext中正确定义应用程序类并最大限度地提高代码重用率,您将需要某种方法来清理DOM中未使用的节点。除非您使用的是最新版本的Safari或Firefox 3.1,否则Javascript性能可能会非常糟糕。

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

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

        2
  •  14
  •   Dan Dascalescu    13 年前

    [2012年更新] ExtJS是由 Sencha, who offer a GPLv3 license

    [2008年10月评论]ExtJS在技术上很有价值,但几个月前许可的失败让我开始考虑其他框架——我现在根本不信任ExtJS的创建者。我不喜欢他们如何措辞他们的许可证,以及他们如何假装是开源倡导者,同时显然试图从那些相信他们的人那里不公平地获利。

    我只是出于道德原因反对使用ExtJS。

        3
  •  5
  •   Ed Spencer    16 年前

    这是米兰对我先前回答的回应,但作为一名新来者,我没有足够的声望来回答:

    我很高兴你以前遇到过extmvc的东西。目前,我完全相信它一定很难理解,主要是因为缺少示例、教程和演示。然而,代码本身有很好的文档记录(至少是更新的代码,还有很多需要清除)。

    我目前正在重构一些关键类,然后才准备好进行适当的“发布”。准备好后(我想几周),我将生成文档并用一些演示和示例代码建立一个快速站点。当我这样做的时候,我会在我的博客上贴一篇帖子( http://edspencer.net ).

    我的目标是尝试提供一个框架,使编写这种类型的应用程序更加简单,并建立一些约定。目前还没有一致或默认的结构化ExtJS应用程序的方法,因此我们所能做的任何事情都将朝着正确的方向迈出一步!欢迎提出意见和贡献。

        4
  •  4
  •   Dave Nolan    16 年前

    让RoR和ExtJS顺利地协同工作不会太费力。最根本的选择是将Extjs扩展到“Rails”,Poto Ror“ExtJS”,还是在中间相遇。这将取决于你们团队的技能。

    我采用了“中间相遇”战略,其中包括:

    • 延伸 Ext.data.Store Ext.data.Record 了解轨道布线约定
    • 乱劈 Ext.grid.EditorPanel Ext.form.BasicForm
    • 编写一些模块进行扩展 ActiveRecord::Base ApplicationController Ext.form.BasicForm

    差不多就是这样。

    话虽如此,ExtJS也有缺点。

    • 社区文档很差,而且以PHP为中心。
    • 这个团队已经失去了开源的可信度,所以他们失去了开源的氧气。
        5
  •  4
  •   mxgrn    12 年前

    您可能想看看Netzke框架,它被认为正是这样做的:通过强调模块化方法来促进创建复杂的单页web应用程序。

    Netzke的优点是:

    • 代码的可重用性和可扩展性。一旦您制作了组件(客户端和服务器端),您就可以在任何地方重用它,与其他组件组合,或者通过继承对其进行事件扩展。

    • 效率每个组件的类只从服务器加载(并计算)一次,这节省了大量的服务器-客户端通信时间。

    • 它有预构建的组件,您可以直接使用它们,而无需触摸ExtJS(只需在Rails中配置它们)

    • 它(由作者)用于复杂物流应用程序的实际开发。

    Netzke的缺点是:

    • 代码还很年轻,社区规模也很小。

    https://github.com/nomadcoder/netzke-core

    现场演示/教程可在此处找到: http://netzke-demo.herokuapp.com 在这里: http://yanit.heroku.com

        6
  •  1
  •   Ben Crouse    16 年前

    to_json 呈现Ext可以读取的JSON(用于验证失败的数组、散列、模型等)

    查看分机_ scaffold Rails插件。我从这个开始,并砍掉了它 ActiveRecord ActionView 直到它做了我需要它做的事情。

        7
  •  1
  •   JasonOng    16 年前

    我也有在Rails中使用ExtJS的经验。使用该框架是免费获得一些好看的小部件的好方法。如果您将REST约定用于开发单页应用程序,它也应该适合框架。与RJ配合也很好。

    以下是我对使用该框架的不满

    1. 你不能真正使用flash,因为重新加载一个单页应用程序是愚蠢的。这使得传递验证通知和消息成为一件麻烦事,因为您必须使用RJS/javascript方法来显示它们。

        8
  •  1
  •   Ed Spencer    16 年前

    我已经为许多应用程序部署了ExtJS和Rails,它们当然可以相互通信。我们已经制作了一个应用程序的快速演示,目前正在Rails+Ext中开发 http://demo.domine.co.uk/admin . 暂时忽略前端,因为它尚未完成-管理部分基本上已完成,您可以使用以下工具登录:

    用户名:爱德华 密码:rarrar

    开始菜单上的每个应用程序都通过JSON与Rails后端交互。我已经编写了一个基本的Rails插件来为我们完成大部分工作。我将很快发布这背后的代码,但目前希望这能让我们了解这两种技术可以如何协同工作。。。

        9
  •  0
  •   Andy Jeffries    16 年前

    Practical Rails Projects Flexigrid 具有 jrails 以获得更多的桌面体验。

        10
  •  0
  •   mono mono    16 年前
    推荐文章