捆绑如何提高性能?
How does bundling improve performance?
我知道捆绑允许从服务器拉取更少的依赖文件。但是,如果那个捆绑依赖文件的文件大小与捆绑文件的大小相同。为什么会更快?
我了解了捆绑拆分的概念,但我们不需要在主 html 文件(我将其理解为用户首次登陆的页面)中指定捆绑吗?
(如果问题措辞不当,我很抱歉。我对整个捆绑概念很困惑,不知道如何让问题更具体。)
如果您的 javascript 应用程序只有一个版本,那么即使在加载第一页时也会加载所有不必要的代码。我们可以利用 js 提供的异步能力,按需加载块(代码拆分生成的模块)。
假设如果我的第一个页面只有一些信息,并且我在第二页上的某个按钮上显示弹出窗口,那么我不需要调用 pop 的代码和第一个页面,但我可以在任何条件的基础上在未来加载那个弹出包。除此之外,我们的包当然应该被丑化、缩小和 gzip 压缩。
捆绑的好处
缩小
虽然您可以压缩您的代码,即使它没有被捆绑,但捆绑您的代码允许更多的压缩,这反过来会导致更快的加载时间.
例如,假设您有两个文件,file1.js
和 file2.js
。 file1.js
使用来自 file1.js
的全局函数。
单独缩小文件需要 file1
和 file2
中的函数名称保持不变,因为缩小器无法知道 file2
中调用的函数(如果它被缩小了)同时缩小 file1
.
另一方面,捆绑文件并缩小它们允许缩小器重命名函数或变量的每个出现,从而使您的代码更小。
此外,正如@gauraysingh 所说,打包器可以删除未使用的代码,例如函数。例如,假设您在应用程序中使用 jQuery。当您捆绑代码时,捆绑器和压缩器可以删除所有未使用的 jQuery 方法,这意味着您将节省很多文件大小。
更少的 HTTP 请求
只向您的捆绑代码发出一个 HTTP 请求比发出多个请求更快并且使用更少的数据。
我知道捆绑允许从服务器拉取更少的依赖文件。但是,如果那个捆绑依赖文件的文件大小与捆绑文件的大小相同。为什么会更快?
我了解了捆绑拆分的概念,但我们不需要在主 html 文件(我将其理解为用户首次登陆的页面)中指定捆绑吗?
(如果问题措辞不当,我很抱歉。我对整个捆绑概念很困惑,不知道如何让问题更具体。)
如果您的 javascript 应用程序只有一个版本,那么即使在加载第一页时也会加载所有不必要的代码。我们可以利用 js 提供的异步能力,按需加载块(代码拆分生成的模块)。 假设如果我的第一个页面只有一些信息,并且我在第二页上的某个按钮上显示弹出窗口,那么我不需要调用 pop 的代码和第一个页面,但我可以在任何条件的基础上在未来加载那个弹出包。除此之外,我们的包当然应该被丑化、缩小和 gzip 压缩。
捆绑的好处
缩小
虽然您可以压缩您的代码,即使它没有被捆绑,但捆绑您的代码允许更多的压缩,这反过来会导致更快的加载时间.
例如,假设您有两个文件,file1.js
和 file2.js
。 file1.js
使用来自 file1.js
的全局函数。
单独缩小文件需要 file1
和 file2
中的函数名称保持不变,因为缩小器无法知道 file2
中调用的函数(如果它被缩小了)同时缩小 file1
.
另一方面,捆绑文件并缩小它们允许缩小器重命名函数或变量的每个出现,从而使您的代码更小。
此外,正如@gauraysingh 所说,打包器可以删除未使用的代码,例如函数。例如,假设您在应用程序中使用 jQuery。当您捆绑代码时,捆绑器和压缩器可以删除所有未使用的 jQuery 方法,这意味着您将节省很多文件大小。
更少的 HTTP 请求
只向您的捆绑代码发出一个 HTTP 请求比发出多个请求更快并且使用更少的数据。