js 实现 gzip
Gzip 压缩实现方法
在 JavaScript 中实现 Gzip 压缩可以通过浏览器端的 pako 库或 Node.js 内置的 zlib 模块完成。
浏览器端使用 pako 库
安装 pako 库:
npm install pako
压缩字符串示例:
import pako from 'pako';
const originalString = '需要压缩的文本内容';
const compressed = pako.gzip(originalString);
const base64Compressed = btoa(String.fromCharCode.apply(null, compressed));
console.log('压缩结果:', base64Compressed);
解压缩示例:
const decompressed = pako.ungzip(
Uint8Array.from(atob(base64Compressed), c => c.charCodeAt(0))
);
const originalText = new TextDecoder().decode(decompressed);
console.log('解压结果:', originalText);
Node.js 使用 zlib 模块
同步压缩示例:
const zlib = require('zlib');
const fs = require('fs');
const input = fs.readFileSync('input.txt');
const compressed = zlib.gzipSync(input);
fs.writeFileSync('output.gz', compressed);
异步压缩示例:

zlib.gzip(inputBuffer, (err, compressedBuffer) => {
if (!err) {
fs.writeFile('output.gz', compressedBuffer);
}
});
注意事项
浏览器端压缩适用于文本数据,二进制数据需要特殊处理。Node.js 的 zlib 模块支持流式处理大文件,pako 更适合前端场景。压缩率与数据内容相关,重复内容可获得更高压缩比。






