2012-03-27 47 views
6

我有一个包含许多事件处理程序的页面。该代码现在已达到1000多行代码,并且我开始难以阅读代码。我现在计划将代码分隔到不同的文件。我的问题是,将JS代码分成不同的文件有什么缺点?分离JavaScript代码的缺点?

+4

一件事。我会建议有一个可读的开发文件或多个文件,但一个缩小和/或gzip文件的生产。 – Kumar 2012-03-27 05:23:08

+0

(编辑:库马尔打败了我,但我认为缺乏并发请求仍然存在。)我能想到的唯一重要的是加载不同的JS文件可能会有点慢。因为它们可能会发生冲突,所以一次只能加载一个(尽管浏览器可能已经开始为此工作 - 在过去几年中没有检查过)。尽管你总是可以在生产版本中一起整理一些文件。 – Corbin 2012-03-27 05:23:53

+0

同意库马尔 - 虽然会说你不会看到那么多的性能差异,除非你有更多的代码更多的文件。 – dbrin 2012-03-27 05:28:40

回答

3

的缺点?

  • 另一个HTTP请求。开发人员建议将文件压缩并尽量保存在尽可能少的文件中进行优化。您请求的文件越少,速度越快(因为往返次数少)

  • 如果您使用带自动完成功能的文本编辑器,其中一些编辑器将无法从其他文件中提取内容用于自动完成。如果你不记忆你所拥有的功能,这可能是一个问题。

  • 如果这些相互依赖的文件之一未能加载,您的应用程序将中断。

4

最好的做法是为每个文件中包含的功能模块是所有相关的(无论是最有效的开发/调试/编辑/源控制发展的宗旨创造相对较小的文件,你可以给每个提供一个有意义的名称来描述它的内容,每个文件都可以单独管理(它们自己的源代码管理系统中的版本历史记录,签入/签出等等)。打开多个标签通常更容易在编辑器中使用单独的文件,而不是尝试使用书签在一个大文件中的不同位置之间跳来跳去......

然后,当您开始部署应用程序时,使用工具(如Google clos ure或YUI Compressor)将所有较小的文件最小化并合并到一个部署文件中。这保留了包含相关代码的小文件的开发优势,同时保留了大部分/全部代码放在一个较大的外部JavaScript文件中的部署优势,该文件可以在一个http请求中下载,并且可以非常有效地进行缓存。

2

除了我的评论。

使用T4模板从here,或者你可以使用C#在现代平台script#

写javascript,开发商不会直接写javascript,例如在Rails的

  • ,使用CoffeScript
  • 在Python,使用的(py2js,睡衣,谷歌V8,skulpt)在C#
  • ,使用脚本#一个
1

将代码分开放在不同的文件中可以帮助您进行维护。 我会建议你把它分成与CommonJS兼容的模块,如果你在浏览器环境下工作,你可以使用RequireJS加载它们。当您部署网站/ web应用程序以优化http请求时,您还可以使用提供的实用程序创建单个文件。