捆绑如何提高性能?

How does bundling improve performance?

我知道捆绑允许从服务器拉取更少的依赖文件。但是,如果那个捆绑依赖文件的文件大小与捆绑文件的大小相同。为什么会更快?

我了解了捆绑拆分的概念,但我们不需要在主 html 文件(我将其理解为用户首次登陆的页面)中指定捆绑吗?

(如果问题措辞不当,我很抱歉。我对整个捆绑概念很困惑,不知道如何让问题更具体。)

如果您的 javascript 应用程序只有一个版本,那么即使在加载第一页时也会加载所有不必要的代码。我们可以利用 js 提供的异步能力,按需加载块(代码拆分生成的模块)。 假设如果我的第一个页面只有一些信息,并且我在第二页上的某个按钮上显示弹出窗口,那么我不需要调用 pop 的代码和第一个页面,但我可以在任何条件的基础上在未来加载那个弹出包。除此之外,我们的包当然应该被丑化、缩小和 gzip 压缩。

捆绑的好处

缩小

虽然您可以压缩您的代码,即使它没有被捆绑,但捆绑您的代码允许更多的压缩,这反过来会导致更快的加载时间.

例如,假设您有两个文件,file1.jsfile2.jsfile1.js 使用来自 file1.js 的全局函数。

单独缩小文件需要 file1file2 中的函数名称保持不变,因为缩小器无法知道 file2 中调用的函数(如果它被缩小了)同时缩小 file1.

另一方面,捆绑文件并缩小它们允许缩小器重命名函数或变量的每个出现,从而使您的代码更小。

此外,正如@gauraysingh 所说,打包器可以删除未使用的代码,例如函数。例如,假设您在应用程序中使用 jQuery。当您捆绑代码时,捆绑器和压缩器可以删除所有未使用的 jQuery 方法,这意味着您将节省很多文件大小。

更少的 HTTP 请求

只向您的捆绑代码发出一个 HTTP 请求比发出多个请求更快并且使用更少的数据。