为什么要将所有Javascript代码放在一个文件中?

时间:2009-11-24 06:24:40

标签: javascript http

为什么要将所有Javascript代码放在一个文件中?是否可能并且分成较小的逻辑文件单元是否有意义?

8 个答案:

答案 0 :(得分:15)

只有一个JS文件,您可以获得更少的HTTP头开销。关于网站开发:您必须适合目标受众。网络流量很昂贵,因此您必须最大限度地减少网络流量并最大化信息。

答案 1 :(得分:6)

您可以拥有两个不同的JS代码“构建”。您编写的一个不错的模块化版本,然后使用Google's JS compiler构建一个快速,优化的小版本以供实时使用。

答案 2 :(得分:3)

是的。单独查看此页面的源代码,我看到至少引用了四个javascript文件,并在页面本身上添加了一个内联脚本元素。

您应该根据自己的想法分割文件。大多数情况下,您将在一个文件中拥有相关类和方法的库,或者可以在单独的文件中,通过调用负责的中间文件,包括所有其他文件。逻辑分组是关键。

另一方面,当您运行类似SO的网站时,还有其他需要考虑的事项 - 如果您将所有javascript放在单独的文件中,那么至少有四个(对于此页面)单独请求到服务器(或者加载几个服务器)加载页面,如果你运行一个流行的网站,这可能意味着额外的HTTP标题中的千兆字节带宽,并且可能是合并你的javascript文件的一个令人信服的理由。没有多少人担心这一点,但考虑这些事情是值得的。

答案 3 :(得分:2)

JavaScript和CSS文件通常合并为一个文件(每个文件),以便浏览器向服务器发出较少的请求。

浏览器通常只能与Web服务器建立2个并发连接,因此如果文件可以组合成单个流,您将在浏览器中获得更好的感知性能,因为可以在单个连接中下载更多数据。

这与图像精灵背后的想法相同,其中多个图像被放入一次下载的单个大型精灵文件中,然后使用CSS和背景图像“屏蔽”以显示您感兴趣的图像。

实际上,您应该在开发中使用单独的文件,并在部署过程中运行组合器/压缩实用程序,将JavaScript和CSS资源组合并压缩(如果适用)到单个文件中。

答案 4 :(得分:1)

您可以根据需要将Javascript放在尽可能多的文件中,但文件之间进行通信的唯一方法是使用全局变量,因此最好保留所包含的内容,尽可能限制全局“表面区域”。 / p>

这只是语言设计的历史结果。

答案 5 :(得分:1)

最佳做法仍然是缩小JS文件,并至少使用ETagLast-ModifiedExpires标头提供该文件,如果适用,还提供gzip它。

我们使用YUICompressor将所有相关的JS文件缩小并合并到一个文件中,所有函数都应用于请求的页面。 CSS文件也是如此。

我不知道您使用的是哪种服务器端编程语言,但如果它是Java / JSP,那么您可能会发现this article也很有用。否则,YSlow Firebug插件可能会提供很多新的见解。

答案 6 :(得分:0)

开发处理单独的文件时,它始终具有逻辑意义。但是当HTML文件包含在HTML中时,会对每个JS文件进行单独的下载请求。我建议处理单独的文件,但在编译时将所有这些文件整理(并压缩),然后再包含在存档中。

答案 7 :(得分:0)

因为HTTP是无状态协议,并且在Web应用程序中,每个页面都有自己的标识意味着我们无法创建其他页面的对象。和javascript是客户端语言,它在HTML浏览器中运行。我认为这就是为什么它不支持多文件概念