Javascript dojo vs extjs用于大型单页js应用程序
我将构建一个非常大的mvc js应用程序管理应用程序,并将其缩小到dojo和extjs 我想知道,在过去6个月内,是否有人对这两个框架有任何经验,以及您是否对以下任何方面有任何问题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
- 文件
- 绑定
- 内化
- 小部件的主题化
- 可搜索的客户端存储(不必离线,只需能够在收到记录后存储记录,然后对这些记录进行本地搜索)
- 使用selenium之类的全堆栈工具进行测试
- 数据网格,分页,整理整个工作
- 开发速度:看看这些例子有多简单
- MVC:(路由尚未内置)
- 文件:
- 绑定
- 内部化:每个小部件都可以内部化
- 小部件的主题化:使用SASS
- 可搜索的客户端存储:
- 使用一些完整的堆栈工具进行测试,如selenium:不是内置的,但由于它都是基于OO的,并且是解耦的,所以测试很容易
- 数据网格、分页、整个工作的排序:以及
- 动态类加载:
- RTL支持: 图表:我个人认为它低于EXT JS标准,但它们提供了一个非常好的完整包(bug不可忍受),我实际上更喜欢使用,我创建了一个简单的包装器来使用它作为Ext JS组件。
- 以下是Ext JS提供的功能
/**
* 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很强大,但有时会很棘手,良好的支持可以弥补它