使用 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。 对于其他浏览器,请选中 CanIUse

致谢

主打图片:Matt Artz Unsplash