2012-08-07 156 views
13

我正在制作一个JavaScript应用程序。通常我做的是制作不同的模块,并在$(document).ready();函数中获取用户输入或点击事件。这适用于小型应用程序。但是,当我遵循相同的模式,我的意思是获得点击事件$(document).ready();然后它变得混乱。组织javascript代码

那么我怎么能组织这个文件的一个巨大的应用程序?

在此先感谢

+3

我恭敬地不同意downvote;你必须从某个地方开始。但是,al0ne可能会考虑扩大这个问题,以通过代码显示“杂乱门槛”发生的地方。 – cantera 2012-08-07 09:42:33

+1

@ cantera25它是有道理的。乱七八糟,我的意思是这个代码在单个文件中可能达到一千多行。我不要那个。 – 2619 2012-08-07 09:52:11

回答

12

单最好的资源,我在这个问题上发现的是阿迪·奥斯马尼的创作共用书,Patterns for Large-Scale JavaScript Application Architecture。它的部分基础是Nicholas Zakas'Scalable JavaScript Application Architecture,将其应用于经典的设计模式和现代化的工作流程。

一旦您的复杂程度达到中等水平,您将从使用MVC体系结构模式变体构建的框架中受益。 Backbone.js是领跑者,是一个微观框架,这意味着它比其他人少手持。其他受欢迎的选择是Ember.jsKnockoutJS

扩展和样板也建立在这些框架上以处理重复的任务,如数据/模型绑定和脚手架。对于Backbone,请查看Derick Bailey的Backbone.MarionetteBackbone Aura,这是一种不完全准备好的适用于使用Backbone构建的Osmani/Zakas架构模型作为其主干的骨干。

6

JavaScript是一种脚本语言,结构是大型JavaScript项目中最重要的问题之一。重要的是你的应用程序的部分是很好的分离和“独立”的。例如,您可以在单个文件夹中创建自己的具有自己的模板,逻辑,样式,本地化等的UI组件。这种自我控制能让你以一种可管理的方式组织你复杂的前端代码。

一旦你的代码被组织起来,并且自包含,你还需要解决其他问题。

  • 应当如何进行这些松散耦合的组件用了紧耦合
  • 我应该如何优化这些单个部件快速加载在我的生产ENV

我BoilerplateJS参考架构为作者互动大规模应用。

http://boilerplatejs.org

它集成了大部分的尼古拉斯Zakas'presentation讨论的最佳做法。您还可以在代码中找到模块化产品套件的示例实现。看一看,您将了解在使用JavaScript进行大规模应用时需要注意的问题。