前言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 }); }

发表评论 取消回复