【发布时间】:2017-02-09 17:41:55
【问题描述】:
我正在为我的应用程序使用 ng-cli。当我运行 ng build --prod 时,我得到了两个文件 main.budle.js 和 main.bundle.js.gz。第二个是什么?它有什么好处?
【问题讨论】:
标签: javascript angularjs angular typescript webpack
我正在为我的应用程序使用 ng-cli。当我运行 ng build --prod 时,我得到了两个文件 main.budle.js 和 main.bundle.js.gz。第二个是什么?它有什么好处?
【问题讨论】:
标签: javascript angularjs angular typescript webpack
服务器和客户端之间的 HTTP 传输几乎总是使用压缩。在大多数情况下,这是 gzip。
因此,对于传输时间而言,重要的不是 bundle.js 的大小,而是 bundle.js.gz 的大小,因为内容实际上总是以 gzip 压缩格式发送。
当请求bundle.js 时,服务器会即时对其进行gzip 压缩并将其放在网络上。所以 gzip 对每个请求都运行,这对于静态内容来说效率很低。
gzip 的性能也会随着压缩级别的增加而显着下降 (check out this article)。如果可能在运行中使用尽可能高的压缩级别是无效的。
当请求 bundle.js 的 gzip 压缩版本时,正确配置的网络服务器会发送 bundle.js.gz,因此您可以使用 gzip 可以提供的最高压缩级别。
在我看来,除非您的服务器主要提供可以提前压缩的静态内容,否则这样做的性能奖励可以忽略不计。对于从同一台机器提供静态内容和 API 的小型应用程序,实际上应该没有影响。
【讨论】: