Compression Streams API 压缩解压
Compression Streams API:CompressionStream(gzip/deflate/deflate-raw)/DecompressionStream流式压缩解压、比第三方库(pako/zlib.js)更原生高效、HTTP Content-Encoding · 难度:入门 · +10XP
Compression Streams API —— 浏览器原生压缩解压
以前在浏览器中gzip压缩需要引入pako等第三方库。Compression Streams API提供了原生的gzip和deflate流式压缩解压。
压缩数据
const compressedStream = new Blob(['hello world hello world'])
.stream().pipeThrough(new CompressionStream('gzip'));
const compressedBlob = await new Response(compressedStream).blob();
console.log('压缩前:', 24, '压缩后:', compressedBlob.size);
// 解压
const decompressedStream = compressedBlob.stream()
.pipeThrough(new DecompressionStream('gzip'));
const decompressed = await new Response(decompressedStream).text();
动手练习
- 基础练习:压缩一篇文章,对比压缩前后的体积。
- 进阶应用:实现"上传时自动压缩、下载时自动解压"的流处理管道。
- 项目实战:在文件共享应用中使用浏览器原生压缩减少传输数据量。