我将要构建一个非常大的MVC JS应用程序管理后台,目前已经将选择范围缩小到了Dojo和ExtJS。
我想知道在过去6个月内,是否有人使用这两个框架,并且是否在以下任何领域遇到了问题:
- 开发速度
- MVC
- 文档
- 绑定
- 国际化
- 主题化小部件
- 可搜索的客户端存储(不必离线,只需能够在收到记录后存储记录并对这些记录进行本地搜索)
- 使用类似Selenium的全栈工具进行测试
- 数据网格、分页、排序等完整功能
我将要构建一个非常大的MVC JS应用程序管理后台,目前已经将选择范围缩小到了Dojo和ExtJS。
我想知道在过去6个月内,是否有人使用这两个框架,并且是否在以下任何领域遇到了问题:
由于Dojo可以完成您所需的一切。
Dojo支持“存储”,可以完全满足您的要求。他们还支持不同的东西,如JsonRestStore,XMLStore,HTMLStore等,因此您可以轻松地切换数据源。
关于单元测试,您可以使用内置工具Dojo Objective Harness及其机器人或其他工具,如selenium或eventd(dojo)。
关于MVC,Dojo有一个名为dojox.mvc的东西:http://livedocs.dojotoolkit.org/releasenotes/1.7#mvc
虽然还有许多其他东西 :)
我建议在这里阅读教程:http://dojotoolkit.org/documentation/
您提出的问题有点难回答,因为我认为几乎每个体面的框架今天都可以做到您所要求的事情。每个开发人员都会告诉您,他更喜欢的框架更好^^
我个人使用Dojo,我认为它功能强大,特别适合大型应用程序。他们也非常活跃,并跟上了最新的趋势(AMD Loader RequireJS等)。 还有一个不错的社区,彼此帮助,特别是在邮件列表和irc频道上。
另外,如果它以任何方式重要,像IBM这样的公司信任并花时间帮助框架变得更好。
这不属于答案,但如果您最终使用了Ext-JS,您可能需要以下内容以获得更好的图表性能。 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中了解它。
无论如何,我对Ext-JS非常满意,没有任何理由去寻找新的框架。