如何使用 Express.js 资源压缩中间件提升你的 Web 应用性能

阅读时长 5 分钟读完

在今天的 Web 应用开发中,提升用户体验和网站性能已经成为了开发者不可忽视的一部分。其中,资源压缩就是一项能够大幅度提升网页性能的重要技术。本文将介绍如何使用 Express.js 资源压缩中间件来压缩你的 Web 应用资源,并提供相应的代码示例。

什么是资源压缩?

资源压缩就是将 Web 应用中的静态资源(如 HTML、CSS、JavaScript 文件)通过某些算法进行压缩,减少资源的大小,从而提高 Web 应用的加载速度,缩短用户等待时间。

常用的资源压缩算法有 Gzip、Brotli 等。这些算法可以通过限制输出内容长度、删除无用字符等方式来达到压缩的效果。

为什么需要资源压缩?

在 Web 应用中,浏览器和服务器之间的传输数据过程中,网络速度是一个不可控的因素。在这种情况下,资源压缩可以大幅度地减少压缩文件的大小,从而提高 Web 应用在用户端的加载速度,减少请求时间,以此提升用户体验。

如何使用 Express.js 资源压缩中间件

在 Express.js 应用中,要使用资源压缩中间件首先需要安装 compression 中间件。在命令行中可以使用以下命令安装:

在完成安装后,可以通过以下代码来引入中间件:

在上述代码中,我们使用 app.use 方法来加载 compression 中间件。当请求通过中间件时,它会自动检测请求文件类型(如 HTML、CSS、JavaScript 文件等),并对其进行压缩。

如何指定压缩算法

在默认情况下,compression 中间件使用 Gzip 算法来进行资源压缩。但是,你可以在 compression 中间件中指定其他压缩算法来进行压缩。常用的压缩算法有 Gzip、Brotli 等。以下是使用 Brotli 压缩算法进行资源压缩的示例代码:

-- -------------------- ---- -------
----- ------- - -------------------
----- ----------- - -----------------------

----- --- - ----------

---------------------
  ------- ----- ---- -- -
    -- --------------------------------- -
      ------ ------
    -
    ------ ----------------------- -----
  --
  -------------- -
    ------- -
      -------------------------------------- ---
    --
  --
----

在上述代码中,我们使用 compressionbrotliOptions 选项,并指定了 BROTLI_PARAM_QUALITY 参数为 11。这将会对我们的文件进行最高速度和最大压缩率的压缩。

如何指定压缩文件类型

在默认情况下,compression 中间件会自动检测请求文件类型,只对支持 Gzip 和 Deflate 压缩算法的文件进行压缩。但是,你也可以通过设置响应的 Content-Type 响应头(如 text/htmltext/cssapplication/javascript 等)来指定压缩的文件类型。以下是对 HTML 文件进行压缩的示例代码:

-- -------------------- ---- -------
----- ------- - -------------------
----- ----------- - -----------------------

----- --- - ----------

---------------------
  ------- ----- ---- -- -
    -- --------------------------------- -
      ------ ------
    -
    ------ ----------------------- -----
  --
  ------ --
  --------- --
  ---------- ------
  ----- -------
----

在上述代码中,我们使用 compressiontype 选项,指定了压缩文件类型为 HTML。此时,只有 HTML 文件会被压缩,其他文件则不会被压缩。

如何测试压缩效果

在实际使用过程中,我们需要测试压缩后文件的大小和压缩前的大小是否相同,以此来更好地评估资源压缩的效果。以下是使用 Postman 快速测试压缩效果的示例:

  1. 打开 Postman,选择 Request (请求)选项卡;

  2. 添加一个新的请求,访问你的 Web 应用地址;

  3. 打开 Postman 右侧的 Headers (请求头)选项卡,设置请求头:

  4. 发送请求后查看响应头部,检查是否添加了 Content-Encoding: gzip 响应头部,表示服务端已经使用了 Gzip 算法对响应进行了压缩;

  5. 将响应体的内容复制到本地文件,并记录文件大小;

  6. 在本地使用 Gzip 压缩文件,并记录压缩后文件大小;

  7. 将压缩前和压缩后的大小进行比较,表示资源压缩的效果。

总结

在本文中,我们了解了什么是资源压缩,以及资源压缩如何提升 Web 应用的性能。我们还介绍了如何使用 Express.js 资源压缩中间件,在我们的 Web 应用中启用资源压缩,并通过示例代码深入了解了如何使用压缩算法、设置压缩文件类型,并测试压缩效果。希望这篇文章对你在日常工作中提升 Web 应用性能有所帮助。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/654cf44a7d4982a6eb64b9ce

纠错
反馈