Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript dojo vs extjs用于大型单页js应用程序_Javascript_Model View Controller_Extjs_Dojo_Javascript Framework - Fatal编程技术网

Javascript dojo vs extjs用于大型单页js应用程序

Javascript dojo vs extjs用于大型单页js应用程序,javascript,model-view-controller,extjs,dojo,javascript-framework,Javascript,Model View Controller,Extjs,Dojo,Javascript Framework,我将构建一个非常大的mvc js应用程序管理应用程序,并将其缩小到dojo和extjs 我想知道,在过去6个月内,是否有人对这两个框架有任何经验,以及您是否对以下任何方面有任何问题 发展速度 mvc 文件 绑定 内化 小部件的主题化 可搜索的客户端存储(不必离线,只需能够在收到记录后存储记录,然后对这些记录进行本地搜索) 使用selenium之类的全堆栈工具进行测试 数据网格,分页,整理整个工作 以下是Ext JS提供的功能 开发速度:看看这些例子有多简单 MVC:(路由尚未内置) 文件:

我将构建一个非常大的mvc js应用程序管理应用程序,并将其缩小到dojo和extjs

我想知道,在过去6个月内,是否有人对这两个框架有任何经验,以及您是否对以下任何方面有任何问题

  • 发展速度
  • mvc
  • 文件
  • 绑定
  • 内化
  • 小部件的主题化
  • 可搜索的客户端存储(不必离线,只需能够在收到记录后存储记录,然后对这些记录进行本地搜索)
  • 使用selenium之类的全堆栈工具进行测试
  • 数据网格,分页,整理整个工作

    • 以下是Ext JS提供的功能

      • 开发速度:看看这些例子有多简单
      • MVC:(路由尚未内置)
      • 文件:
      • 绑定
      • 内部化:每个小部件都可以内部化
      • 小部件的主题化:使用SASS
      • 可搜索的客户端存储:
      • 使用一些完整的堆栈工具进行测试,如selenium:不是内置的,但由于它都是基于OO的,并且是解耦的,所以测试很容易
      • 数据网格、分页、整个工作的排序:以及
      • 动态类加载:
      • RTL支持:
      • 图表:我个人认为它低于EXT JS标准,但它们提供了一个非常好的完整包(bug不可忍受),我实际上更喜欢使用,我创建了一个简单的包装器来使用它作为Ext JS组件。
      这不属于答案,但是如果您最终使用ExtJS,您可能需要以下内容来获得更好的性能图表。Ext图表的优点是它们更易于交互(鼠标悬停,点击),因为它不像flot那样基于画布

      /**
       * Renders a single flot chart, a much simplifed version of ExtFlot
       */
      Ext.define('Ext.ux.FlotPanel',  {
          extend: 'Ext.Component',
          alias: 'widget.flot',
      
          /**
           * @cfg {number[][]} data The data to be drawn when it gets rendered
           */
          data: null,
      
          /**
           * @cfg {object} flotOptions
           * The options to be passed in to $.plot
           */
          flotOptions: null,
      
          /**
           * @property
           * The Flot object used to render the chart and to manipulate it in the future. It will only
           * be available after the first resize event
           * You may not set this property but you are free to call methods on it
           */
          flot: null,
      
          initComponent: function() {
              this.callParent(arguments);
              // The only time that we're guaranteed to have dimensions is after the first resize event
              this.on('resize',  function(cmp) {               
                  if (!cmp.flot) {
                      cmp.flot = $.plot(cmp.getTargetEl().dom, cmp.data, cmp.flotOptions);
                  } else {
                      // Flot knows to look at the container's size and resize itself 
                      cmp.flot.resize();
                      cmp.flot.setupGrid();
                      cmp.flot.draw();
                  }
              });
      
              this.on('beforedestroy', function(cmp){
                  if (cmp.flot) {
                      cmp.flot.shutdown();
                  }
              });
          }
      });
      

      4年前我看Dojo的时候,我讨厌它。无法忍受在HTML中声明小部件。我更喜欢用JS对象来声明它们(我听说你现在可以在不指定HTML的情况下声明小部件。有些人喜欢在HTML中创建小部件,但在我的情况下(动态商业应用程序),屏幕上的每个部分都是动态的,配置来自服务器,所以我不希望服务器生成我的HTML,因为我需要在JS中了解它


      无论如何,我对ExtJS非常满意,没有理由去购买新的框架。

      因为Dojo做了您需要的一切

      Dojo支持完全按照您的要求进行的“存储”。 它们还支持不同的东西,如JsonRestStore、XMLStore、HTMLStore和许多其他东西,因此您可以轻松地切换数据源

      关于单元测试,您可以使用名为Dojo Objective Harness的内置工具,它是robot,或者其他类似selenium或eventd(Dojo)的工具

      关于MVC,dojo有一个叫做dojox.MVC的东西:

      虽然还有很多其他的事情:)

      我建议在这里阅读教程:

      你的问题有点难回答,因为我想现在几乎所有的框架都能满足你的要求。每个开发人员都会告诉您他更喜欢的框架^^

      就我个人而言,我使用Dojo,我发现它功能强大,特别适合大型应用程序。他们也非常活跃,紧跟最新趋势(AMD Loader RequireJS等)。 还有一个很好的社区,互相帮助,特别是在邮件列表和irc频道上

      此外,如果这在任何方面都很重要,那么像IBM这样的公司会信任并花时间帮助框架改进

      • 发展速度:良好
      • mvc:很好
      • 文档:良好-最近取得了巨大进展:)
      • 装订:很好
      • 内化:好
      • 小部件的主题化:使用更少的石头
      • 一个可搜索的客户端存储(不必离线,只要能够在收到记录后存储记录,然后对这些记录进行本地搜索即可):很好
      • 使用selenium之类的全堆栈工具进行测试:很好
      • datagrid,分页,整个工作的排序:新的dgrid很好,旧的网格很好Dojo很强大,但有时会很棘手,良好的支持可以弥补它

      您是否正在考虑支持从右到左的语言?您将在服务器端使用什么?你考虑过许可证问题吗?Dojo在所有情况下都是免费的,如果您没有开发开源项目,Ext JS就不是免费的……是的,不幸的是它不是开源的,但它是一个很好的框架,有很多追随者,所以考虑到除了Dojo之外没有其他选择,价格标签不是问题如果您在服务器端使用Java,您也可以尝试ZK()。它集成了许多ExtJS组件。还有一个很好的与grails框架的集成,以防这是服务器端的一个选项。这是我发现的开发这类应用程序的最快方法(grails+ZK)。请看这里的幻灯片:还有最近的一个例子:本质上,我在这里寻找的是与我提到的主题相关的人们的经验(好的和坏的),你有没有在我提到的任何主题中使用dojo?如果是这样的话,什么是好的,什么是坏的?*开发速度:好*mvc:good*文档:坏,但最近取得了巨大的进步:)*绑定:好*内部化:好*小部件的主题化:使用更少的石头定制物品*可搜索的客户端存储(不必离线,只需能够在收到记录后存储记录,然后对这些记录进行本地搜索):good*使用一些完整的堆栈工具进行测试,如selenium:good*数据网格、分页、对整个工作进行排序:新的dgrid很好,旧的网格很好Dojo非常强大,但有时可能会很棘手,良好的支持弥补了it@PEM:你应该将这些内容添加到你的答案中。你是否对上述任何一点使用了extjs,如果你使用了w你经历过哪些优点和缺点?我在eve中使用了Ext JS