2

我正在尝试开发基于 HTML5 Canvas 的应用程序。该应用程序基本上是一个财务数据可视化应用程序,完全在 HTML5 Canvas 上运行,即每个按钮、事件处理、图表一切都在 HTML5 Canvas 中完成。

到目前为止,我已经使用了两个库来管理庞大的代码库:

  1. jCotton 用于绘图和事件处理,我们必须修改并添加广泛的其他功能到 jCotton,它对我们来说工作得很好
  2. 用于模块化的 RequireJS 也可以正常工作

然而,由于我们处于原型阶段,我们没有投资一个合适的 MVC 框架,所以关注点分离,即数据模型、独占视图没有得到适当的维护,因为它当时是一个概念验证项目,但现在我我正在考虑重构代码并使用重型 MVC 框架来更好地组织我的代码库。

现在这是我面临的一个问题,我真的很困惑选择什么框架。有 Backbone、EmberJS、SpineJS 等。它们似乎都非常好。但我无法对其中任何一个做出任何最佳决定。我不是 JS 专家,我编写 JS 代码只有 1 年,所以这也是我遇到这些困难的另一个原因。

很多这些框架似乎都非常强调 DOM 操作,这对我的项目来说是不必要的,我们有我们的自定义数据结构来表示 Canvas 中的场景。JS 客户端使用自定义 xml 与后端服务器进行通信和数据传递。我一直在挖掘 Backbone 一段时间。路由器对我没有用,因为应用程序在画布内运行。然而,基于事件的模型似乎很有吸引力。

我想知道你们中是否有人遇到过类似的情况,以及你们为此做了什么。我应该选择 Backbone、EmberJS 等,还是应该更好地设计自己的简约 MVC 框架。如果您建议我使用第三方 MV* 框架,我应该选择哪一个?正如我所说,我一直在挖掘 Backbone 以查看它是否符合我的需求,我想更多地了解这个特定领域中的其他框架。

4

1 回答 1

1

我使用 EmberJS 实现了一个基于画布的“交互式时间趋势图”,并获得了积极的体验。您不需要在 EmberJS 中使用 HTML/Backbone(html 模板)。

EmberJS 的自动传播属性和计算属性非常适合 jCotton 等场景图 API。

我对 jCototn 不熟悉,但快速浏览一下,从 Ember.Object 扩展一个 CottonObject 类似乎很简单,该类会自动修改场景图的子树以响应 Ember 属性更改。

于 2012-12-14T14:43:09.500 回答