---

title: Compression Streams API:gzip 与 deflate 压缩与解压

keywords:

  • CompressionStream
  • DecompressionStream
  • gzip
  • deflate
  • 流处理

description: 使用 CompressionStream/DecompressionStream 在浏览器端进行 gzip/deflate 压缩与解压,适配大文件与流式网络传输,含转换与背压建议。

categories:

  • 应用软件
  • 压缩刻录

---

概述

Compression Streams 提供对 gzipdeflate 的原生压缩/解压能力,可在读取与网络传输过程中进行流式处理,降低带宽与加速传输。

用法/示例

// 压缩 Blob
async function compress(blob) {
  const stream = blob.stream().pipeThrough(new CompressionStream('gzip'))
  const compressed = await new Response(stream).blob()
  return compressed
}

// 解压 ArrayBuffer
async function decompress(buffer) {
  const stream = new ReadableStream({
    start(controller) { controller.enqueue(new Uint8Array(buffer)); controller.close() }
  }).pipeThrough(new DecompressionStream('gzip'))
  return await new Response(stream).arrayBuffer()
}

工程建议

  • 根据数据类型选择合适算法与块大小,避免主线程长时间处理导致卡顿。
  • 与 Web Streams 背压治理协同,必要时分片与节流以保证交互响应。
  • 校验服务端解码能力与内容协商头,确保跨端一致性。

参考与验证

  • MDN:Compression Streams — https://developer.mozilla.org/docs/Web/API/Compression_Streams_API
  • web.dev:Compression Streams — https://web.dev/articles/compression-streams

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部