MST
星途 面试题库

面试题:Node.js 中如何对静态资源进行基础优化

在 Node.js 项目中,描述至少三种对静态资源进行优化的常见方法,并且说明每种方法的原理和适用场景。
30.3万 热度难度
前端开发Node.js

知识考点

AI 面试

面试题答案

一键面试

压缩文件

  • 原理:通过压缩工具(如 gzip、Brotli 等)减少文件大小,降低传输过程中的数据量。gzip 采用 Lempel-Ziv 编码(LZ77)和 Huffman 编码,Brotli 基于 LZ77 与 Huffman 编码并结合其他优化,更高效压缩。
  • 适用场景:所有静态资源,如 CSS、JavaScript、图片等,在网络传输环节,能显著提升加载速度,尤其在带宽有限或对加载性能要求高的场景。

缓存控制

  • 原理:设置 HTTP 缓存头(如 Cache-Control、Expires 等)。Cache-Control 用 max-age 定义资源在客户端缓存的时长;Expires 指定资源过期的绝对时间。客户端下次请求时,若资源在缓存期内,直接从本地读取,减少服务器请求。
  • 适用场景:不经常更新的静态资源,如样式库、通用脚本库等。可降低服务器负载,加快用户端访问速度。

代码拆分与按需加载

  • 原理:将大的 JavaScript 或 CSS 文件拆分成多个小文件,根据实际需求加载。在 JavaScript 中使用动态 import() 语法实现按需加载模块。当特定功能需要时才加载相应代码,减少初始加载体积。
  • 适用场景:大型单页应用(SPA)中,用户并非一开始就需要所有功能代码。比如一个电商应用,商品详情页相关代码可在用户进入商品详情页时按需加载。