使用 Compression Streams API 在浏览器中压缩和解压缩

编写不需要提供自己的压缩或解压缩库的小型 Web 应用

Compression Streams API 用于使用 gzip 或 deflate(或 deflate-raw)格式压缩和解压缩数据流。

具有内置压缩功能的 JavaScript 应用不需要包含压缩库,这可减小应用的下载大小。稳定版 Chrome 和 Safari 技术预览版现在支持这个实用的 API。此处显示了压缩数据。

const readableStream = await fetch('lorem.txt').then(
  (response) => response.body
);
const compressedReadableStream = readableStream.pipeThrough(
  new CompressionStream('gzip')
);

若要解压缩,请在解压缩流中用管道传输压缩的流。

const decompressedReadableStream = compressedReadableStream.pipeThrough(
  new DecompressionStream('gzip')
);

演示

浏览器支持

Chromium 80 和 Safari Technology Preview 152 及以上版本均支持 Compression Streams API。