当前位置:首页 > 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 格式,解压后需相应解码。

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

js实现gzip

标签: jsgzip
分享给朋友:

相关文章

js实现倒计时

js实现倒计时

实现倒计时的基本方法 使用 JavaScript 实现倒计时功能可以通过 setInterval 或 setTimeout 结合日期计算来完成。以下是几种常见的实现方式: 使用 setInterva…

vue实现js休眠

vue实现js休眠

Vue 中实现 JavaScript 休眠 在 Vue 中实现 JavaScript 休眠通常需要使用异步方式,以避免阻塞主线程。以下是几种常见方法: 使用 setTimeout 和 Pro…

js实现验证

js实现验证

验证表单输入 使用JavaScript验证表单输入是常见的需求。可以通过监听表单提交事件,检查输入字段是否符合要求。 document.getElementById('myForm').addEve…

jquery.js

jquery.js

jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互等操作。以下是关于 jQuery.js 的核心信息和使用方法: 获取…

js 实现链表

js 实现链表

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。与数组不同,链表在内存中是非连续存储的,插入和删除操作效率较高。 链表的实现 在 JavaScri…

js类实现

js类实现

使用类实现 JavaScript 功能 在 JavaScript 中,类(Class)是一种语法糖,基于原型继承机制。通过 class 关键字可以更直观地定义对象模板。 基本类定义 class…