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

}

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部