如何编写模块化JavaScript应用程序?

时间:2011-08-31 13:41:59

标签: javascript jquery backbone.js sproutcore javascriptmvc

我打算使用HTML,JavaScript和CSS重写现有的Silverlight应用程序。这将是一个连接到服务器的富Internet应用程序,仅用于数据(基于JSON的Web服务) - 因此不会有服务器端表示框架,如JSP或ASP.NET。该应用程序包含大约8个屏幕,其中大多数采用标签式布局。问题是......

以模块化方式编写此类应用程序的最佳方法是什么?我想将各个屏幕编写为独立模块,仅通过事件相互通信。我还想使用某种MVC框架将表示层与模型分离。

关于我应该关注哪些框架的任何想法?你有使用它们的好经验吗?我开始关注Backbone.jsJavaScriptMVCSproutCore。我错过了任何值得考虑的事情吗?

提前感谢您的时间。

P.S。如果您想查看我想要重写的应用程序,可以使用在线演示here - 这是一个用于学习和比较技术的真实交易应用程序。

3 个答案:

答案 0 :(得分:3)

我还没有机会尝试SproutCore,但我听到了很多关于它的事情,并希望在某些时候进行调查。我建议至少尝试一下Backbone和Sproutcore来看看哪两个更适合你的需求和你的编程风格。

我使用Backbone做了很多工作,你的建议听起来像是非常容易适合主干。我使用我的主干应用程序跟踪事件驱动的架构,我发现它运行良好。它保持代码干净和分离,并允许我通过绑定到我的对象引发的事件轻松添加功能。

还有很多关于骨干的精彩教程和截屏视频。这里有一些希望能为您提供所需的一些信息(包括我自己的博客文章):

再次,不要只选择一个,永远不要回头。如果不是额外的框架,至少在骨干和sproutcore中做一些简单的试验应用是值得的。

希望有所帮助。

答案 1 :(得分:2)

使用Sproutcore,您可以创建所谓的框架,从而将应用程序分开。每个SC项目都有一个frameworks目录,您只需为自定义框架添加一个目录,并在构建文件中包含这些框架。

SC至少将您的Model层分离到自己的框架中,以实现松散耦合和测试(SC是大量MVC),这不是一个坏主意。将屏幕分成自己的框架可能是有意义的,这取决于它们的强大程度。这种方法的一个好处是,如果需要,您可以在其他项目中重用您的框架。

SC还包括一个强大的状态图机制,因此使用自定义事件非常自然,并且由于状态图,它相对容易确保仅在应用程序处于正确状态时才处理事件。

答案 2 :(得分:1)

您是否尝试过Relay框架?您将各个屏幕编写为独立模块,并使用中继的事件系统将它们链接在一起。

http://relay.github.com