我正在尝试开发基于 HTML5 Canvas 的应用程序。该应用程序基本上是一个财务数据可视化应用程序,完全在 HTML5 Canvas 上运行,即每个按钮、事件处理、图表一切都在 HTML5 Canvas 中完成。
到目前为止,我已经使用了两个库来管理庞大的代码库:
- jCotton 用于绘图和事件处理,我们必须修改并添加广泛的其他功能到 jCotton,它对我们来说工作得很好
- 用于模块化的 RequireJS 也可以正常工作
然而,由于我们处于原型阶段,我们没有投资一个合适的 MVC 框架,所以关注点分离,即数据模型、独占视图没有得到适当的维护,因为它当时是一个概念验证项目,但现在我我正在考虑重构代码并使用重型 MVC 框架来更好地组织我的代码库。
现在这是我面临的一个问题,我真的很困惑选择什么框架。有 Backbone、EmberJS、SpineJS 等。它们似乎都非常好。但我无法对其中任何一个做出任何最佳决定。我不是 JS 专家,我编写 JS 代码只有 1 年,所以这也是我遇到这些困难的另一个原因。
很多这些框架似乎都非常强调 DOM 操作,这对我的项目来说是不必要的,我们有我们的自定义数据结构来表示 Canvas 中的场景。JS 客户端使用自定义 xml 与后端服务器进行通信和数据传递。我一直在挖掘 Backbone 一段时间。路由器对我没有用,因为应用程序在画布内运行。然而,基于事件的模型似乎很有吸引力。
我想知道你们中是否有人遇到过类似的情况,以及你们为此做了什么。我应该选择 Backbone、EmberJS 等,还是应该更好地设计自己的简约 MVC 框架。如果您建议我使用第三方 MV* 框架,我应该选择哪一个?正如我所说,我一直在挖掘 Backbone 以查看它是否符合我的需求,我想更多地了解这个特定领域中的其他框架。