将JavaScript拆分为多个文件更好,还是将其全部放在一个文件中更好?

将JavaScript拆分为多个文件更好,还是将其全部放在一个文件中更好?,javascript,server,Javascript,Server,假设一个网站运行在Linux服务器上。有三页。一个页面有AJAX调用,一个页面有JavaScript生成的日历,第三个页面有lightbox图像库。它们还共享一些常见的JavaScript函数 我以前处理这种设置有两种方法。方法1:创建四个.js文件。一个具有通用函数(加载到每个页面上),另外三个具有不同的页面函数。每个页面加载两个脚本:公共脚本和该页面内容的特定脚本。页面发出一个额外的HTTP请求,但不加载任何无关的脚本 方法2:将所有内容放在一个.js文件中,每个页面都加载该文件。只有一个H

假设一个网站运行在Linux服务器上。有三页。一个页面有AJAX调用,一个页面有JavaScript生成的日历,第三个页面有lightbox图像库。它们还共享一些常见的JavaScript函数

我以前处理这种设置有两种方法。方法1:创建四个.js文件。一个具有通用函数(加载到每个页面上),另外三个具有不同的页面函数。每个页面加载两个脚本:公共脚本和该页面内容的特定脚本。页面发出一个额外的HTTP请求,但不加载任何无关的脚本

方法2:将所有内容放在一个.js文件中,每个页面都加载该文件。只有一个HTTP请求,但每个请求都会加载大量无关的JavaScript(例如,日历页面也会加载Gallery页面和AJAX调用页面的脚本)


假设正确的函数命名等不是问题,那么我们不需要担心函数名重叠等问题,哪种情况对站点加载时间和总体性能最有利?每页额外的HTTP请求,或每页大量额外的JavaScript?

这取决于JavaScript的大小和用户的数据连接,以及(非)使用HTTP2等技术


一般来说,答案是将单独的Javascript文件合并到每页的单个文件中会更好地提高性能。没有什么可以说您不能对每个页面分别执行此操作,这意味着您将拥有一个包含页面特定函数以及您描述的常见函数的Javascript文件。您可以手动执行,也可以使用gulp之类的工具自动执行任务。

我将在一个文件中提供它们,因为一个HTTP请求甚至比加载大量JS更可取。如果它是一个巨大的JS文件,考虑缩小。 我只做一个文件,并确保您的服务器响应头允许客户端缓存。然后,对于JS文件只有一个HTTP请求,即使他们访问了您站点上的所有页面。

为了程序员的理智,最好将其开发为单独的文件,并将其作为单个文件,以提高性能。因此,在生产过程中自动将所有JavaScript粘在一起的工具非常流行。像js这样的客户端网页无论使用哪种方法都只会加载一次,非常感谢!清晰,简洁,并有一点额外的背景,非常有用的答案。