前言CompressionStream 提供浏览器原生的流式压缩能力,适合在上传或持久化前进行体积优化。本文演示 GZIP 压缩与解压的端到端流程。能力检测const supportsCompression = typeof CompressionStream === 'function';
const supportsDecompression = typeof DecompressionStream === 'function';
文本压缩与解压async function gzipText(text) {
const cs = new CompressionStream('gzip');
const stream = new Blob([text]).stream().pipeThrough(cs);
return await new Response(stream).blob();
}
async function gunzipToText(blob) {
const ds = new DecompressionStream('gzip');
const stream = blob.stream().pipeThrough(ds);
return await new Response(stream).text();
}
二进制压缩与上传async function uploadGzip(blob, url) {
const cs = new CompressionStream('gzip');
const gz = await new Response(blob.stream().pipeThrough(cs)).blob();
return fetch(url, { method: 'POST', headers: { 'Content-Encoding': 'gzip' }, body: gz });
}

发表评论 取消回复