使用多个较小的文件而不是一个大型JS文件的技术原因是什么?

时间:2016-11-04 13:59:14

标签: asp.net iis chunked-encoding

拥有一个大型Javascript文件与拥有许多不同的Javascript文件之间有区别吗?

我最近了解到,我办公室的一个单独的应用程序包含两个Javascript文件,可满足它所需的一切。它们几乎是2 MB,每行包含大约40K行代码。

从可维护性的角度来看,这显然很糟糕。我无法想象在SVN中处理它。但它实际上是否会对应用程序的性能产生影响?

IIS中有chunked transfer encoding的设置,但除了文章中提到的内容之外,我对此知之甚少。 “理由”部分似乎与Javascript无关。对于应用程序中的“实际”页面以及在客户端和服务器之间来回通信似乎更为重要。

标记为ASP.NET,因为设置位于IIS的“ASP”部分下...如果这实际上没有关联,请编辑并删除标记或让我知道,我可以。

1 个答案:

答案 0 :(得分:3)

Javascript文件通常在生产环境中组合,以减少服务器请求和HTTP开销。每次请求资源时,都需要从客户端到服务器的往返,这会影响页面加载速度。

每个单独的请求都会产生HTTP开销,基本上附加到请求/响应头的额外数据也必须下载。其中一些会随着HTTP2的实现而改变,而较小的文件将变得更有效率。

从可维护性的角度来看,您永远不会想要处理那么大的文件。理想情况下,每个JS文件应分解为逻辑模块并独立存储在SVN中。这使开发人员更容易使用并跟踪更改。然后,那些小的模块化文件将通过构建过程来组合并可能缩小/丑化它们以使它们准备好在生产环境中服务。

您可以使用大量工具自动执行此构建过程,如Gulp,Grunt或npm。某些.NET内容管理系统(如DNN)具有允许您在生产中自动执行此操作的设置。