我将构建一个非常大的mvc js应用程序管理应用程序并将其缩小到dojo和extjs
我想知道是否有人在过去6个月内对这些框架中的任何一个有任何经验,如果您在以下任何方面遇到任何问题
答案 0 :(得分:15)
由于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等公司都会信任并花时间帮助框架做得更好。
答案 1 :(得分:9)
以下是Ext-JS提供的内容。
这不属于答案,但如果您最终使用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时,我讨厌它。 Coudl不会在HTML中声明小部件。我宁愿用JS对象声明它们(我听说你现在可以在不指定HTML的情况下声明小部件。有些人喜欢在HTML中创建小部件,但在我的情况下(动态的商业头脑应用程序),屏幕上的每一个部分是动态的,配置来自服务器,所以我不希望服务器生成我的HTML,因为我需要在我的JS中了解它。
无论如何,我对Ext-JS非常满意,没有理由去购买新的框架。