为大型应用程序构建/组织javascript的正确方法是什么?

时间:2011-11-29 07:26:53

标签: javascript ajax architecture organization

假设您正在构建一个大型应用程序,并且您希望网站上有大量的JavaScript。即使你将javascript分成每页使用javascript的1个文件,你仍然会有大约100个javascript文件。

保持文件系统有条理的最佳方法是什么,在页面上包含这些文件,并保持代码结构本身的有序性?一直以来,都可以选择将产品缩小以进行生产。

3 个答案:

答案 0 :(得分:8)

我个人更喜欢用于构造代码的模块模式,我认为本文给出了一个很好的介绍: http://www.adequatelygood.com/2010/3/JavaScript-Module-Pattern-In-Depth

它使我的全局范围保持干净,启用命名空间,并提供了一种分离公共和私有方法和字段的好方法。

我将代码组织在单独的文件中,并寻求保持低耦合和高内聚。虽然多个文件对客户端性能不利(您应该最小化请求数量),但您可以使用压缩实用程序轻松地从两个世界中获得最佳效果。

我对YUI Compressor有一些经验(有一个Maven插件: http://alchim.sourceforge.net/yuicompressor-maven-plugin/compress-mojo.html - 我自己没有用过这个)。如果您需要以某种方式订购javascript文件(也适用于CSS),您可以制作一个shell脚本,提前按给定顺序连接文件(提示:YUI Compressor默认为STDIN)。

此外,无论哪种方式,你决定缩小你的文件可能会做得很好。您的重点应该放在如何构建代码上,以便它在客户端上表现良好(应该是最高优先级以满足良好的用户体验),并且可以以适合您的方式进行维护。

你提到名称空间,这是一个好主意,但我要小心从传统的面向对象领域采用太多概念,而是学会利用javascript语言的许多优秀功能:)

答案 1 :(得分:5)

如果整体大小不是太大,我会使用脚本将所有文件编译成单个文件并缩小此文件。然后我会使用积极的缓存加上网址中的mtime,这样人们只能加载一次该文件,但只要有一个文件就可以获得新文件。

答案 2 :(得分:1)

使用:

  • jslint - 继续检查代码质量。
  • require.js - 获取每个页面所需的代码(或等效代码)。

像任何其他软件项目一样组织你的js,按角色,责任和分离问题进行分解。