当前位置:首页 > JavaScript

js实现gzip

2026-02-01 09:31:50JavaScript

使用 pako 库实现 Gzip 压缩与解压

pako 是一个流行的 JavaScript 库,支持 Gzip、Deflate 和 Zlib 格式的压缩与解压。

安装:

npm install pako

压缩示例:

import pako from 'pako';

const data = 'This is the data to compress';
const compressed = pako.gzip(data);
console.log(compressed); // Uint8Array

解压示例:

const decompressed = pako.ungzip(compressed);
const originalText = new TextDecoder().decode(decompressed);
console.log(originalText); // 还原原始数据

浏览器原生 API 实现 Gzip 压缩

现代浏览器支持 Compression Streams API,无需第三方库:

压缩:

const stream = new Blob(['data to compress']).stream();
const compressedStream = stream.pipeThrough(new CompressionStream('gzip'));

解压:

const decompressedStream = compressedStream.pipeThrough(new DecompressionStream('gzip'));

Node.js 原生 Zlib 模块

Node.js 内置 zlib 模块支持 Gzip:

压缩:

const zlib = require('zlib');
const input = 'data to compress';

zlib.gzip(input, (err, buffer) => {
  if (!err) console.log(buffer.toString('base64'));
});

解压:

zlib.gunzip(buffer, (err, output) => {
  if (!err) console.log(output.toString());
});

注意事项

压缩二进制数据时需确保正确处理编码。字符串压缩前建议转换为 UTF-8 格式,解压后需相应解码。

js实现gzip

浏览器 API 兼容性需检查,Compression Streams API 在 Chrome 80+ 和 Edge 80+ 支持较完善。生产环境建议使用 pako 作为跨平台解决方案。

标签: jsgzip
分享给朋友:

相关文章

js实现类

js实现类

JavaScript 实现类的几种方式 JavaScript 是一种基于原型的语言,但在 ES6 之后引入了 class 语法糖,使得实现类更加直观。以下是几种常见的实现方式: 使用构造函数 传统的…

js实现授权

js实现授权

授权流程设计 授权流程通常涉及前端与后端的交互,常见方案包括OAuth2.0、JWT等。以JWT为例的典型流程: 用户提交凭证(如用户名密码)到认证服务 服务端验证通过后生成包含用户信息的JWT令牌…

js实现路由

js实现路由

js实现路由的方法 在JavaScript中实现路由功能可以通过多种方式完成,以下是几种常见的方法: 使用原生JavaScript实现路由 通过监听window.onhashchange事件来实现基…

js图片上传实现

js图片上传实现

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API实现基础图片上传功能。HTML部分需要设置accept="image/…

js实现原理

js实现原理

JavaScript 实现原理 JavaScript 是一种解释型语言,其实现原理涉及多个核心组件和运行机制,包括引擎、运行时环境、事件循环等。 引擎与解释执行 现代 JavaScript 引擎(如…

js 实现图片 放大

js 实现图片 放大

使用 CSS transform 实现图片放大 通过 CSS 的 transform: scale() 属性可以实现图片的平滑放大效果。结合 JavaScript 监听鼠标事件控制放大状态: con…