Javascript 单页webapp所需的设计建议

Javascript 单页webapp所需的设计建议,javascript,architecture,backbone.js,ember.js,single-page-application,Javascript,Architecture,Backbone.js,Ember.js,Single Page Application,我们需要将现有的一系列页面/工作流屏幕更改/重写为一个标准页面。该项目本身本质上是在一个更大的现有应用程序的上下文中构建一个单独的网页应用程序 我们的目标是尽可能地保留服务器端实现的方式。这意味着我们将不使用REST模型,而只是一些表单提交到java后端。每个端点都将指向一个JSP 每个表单都将创建为一个小部件。当一个小部件提交时,它可能会影响需要动态更改其值的其他小部件的值 单页web应用程序的两个主要选项似乎是Backbone.js或Ember.js 考虑到我们的需求,这两个(或任何其他框架

我们需要将现有的一系列页面/工作流屏幕更改/重写为一个标准页面。该项目本身本质上是在一个更大的现有应用程序的上下文中构建一个单独的网页应用程序

我们的目标是尽可能地保留服务器端实现的方式。这意味着我们将不使用REST模型,而只是一些表单提交到java后端。每个端点都将指向一个JSP

每个表单都将创建为一个小部件。当一个小部件提交时,它可能会影响需要动态更改其值的其他小部件的值

单页web应用程序的两个主要选项似乎是Backbone.js或Ember.js


考虑到我们的需求,这两个(或任何其他框架)中哪一个最适合?或者我们应该采取其他的方法吗?

这两种方法都可以实现您的目标

我偏爱Ember,因为它提供了一个路由/状态图框架,可以真正帮助锁定应用程序的行为。更不用说它是MVC,它将帮助您分离您的关注点。应用程序中的每个表单或小部件都是您定义的视图,将输入绑定到模型层。

您看过吗?它与EmberJS更具可比性

目前我推荐您使用EmberJS,因为它在生态系统(路由、数据等)方面更为成熟


主干网比这两个先例的级别都低。

可能有一些事情你应该研究一下

Emberjs是42k的minified+gzip,而Backbone.js只有5.6kb。Emberjs在它里面有很多的力量,而赤骨的脊梁却不能给你

分析您是否需要所有这些功能。如果您的需求仅包含在主干中,IMO您应该给Emberjs一个通行证。把这些多余的东西都白白运出去是愚蠢的

对于Emberjs,您还必须使用jQuery。不确定您是否已经在使用它


我知道,如果单页web应用程序非常复杂,有很多功能要求,我会使用Emberjs。其他主干应该足够了。

您需要在页面上存储数据模型,以便像主干这样的东西,或者,您只是简单地将值存储在DOM元素中,以便于像jQuery这样的东西单独使用?至于Backbone.js,它本身通常不足以提供一个好的spa。试着看看一些更高级的基于主干网的框架,比如卓别林,谢谢,是的,我们已经在使用jQuery了。这里的普遍共识似乎是余烬。