当前位置: 首页 > article >正文

HbuilderX中,实现Gzip的两种方法

一:使用Pako进行Gzip压缩

1,安装pako库

npm install pako

2,vue文件页面中,导入pako

<script>
    import axios from 'axios'; // 引入axios

3,解压数据

export default {
  setup() {
    const data = "待解压的文本内容。。。";
    const parsedData = ref(null);

    onMounted(() => {
      // 将base64编码的数据解码为二进制数据
      const binaryString = window.atob(data);
      const binaryArray = new Uint8Array(binaryString.length);

      for (let i = 0; i < binaryString.length; i++) {
        binaryArray[i] = binaryString.charCodeAt(i);
      }

      // 使用pako解压缩数据
      const inflated = pako.inflate(binaryArray);
      const decodedString = String.fromCharCode.apply(null, new Uint16Array(inflated));

      // 解析JSON
      try {
        parsedData.value = JSON.parse(decodedString);
      } catch (error) {
        console.error("Failed to parse JSON:", error);
      }
    });

    return {
      parsedData,
    };
  },
};

第二种方式,使用zlib.js进行Gzip压缩

1,首先,在HTML文件中引入zlib.min.js库:

<script src="https://cdnjs.cloudflare.com/ajax/libs/zlib.js/1.2.11/zlib.min.js"></script>
2,解压缩操作

// 原始字符串
let originalText = "这是一个需要被压缩的示例文本。";
							
// 将原始字符串转换为Uint8Array格式
let uint8array = new TextEncoder().encode(originalText);
							
// 使用zlib进行gzip压缩
zlib.gzip(uint8array, function(err, compressed) {
    if (err) throw err;
    console.log("压缩后的数据:", compressed);
							    
	// 对压缩后的数据进行解压
	zlib.gunzip(compressed, function(err, decompressed) {
		if (err) throw err;
		console.log("解压缩后的原始字符串:", new TextDecoder().decode(decompressed));
	});
});


http://www.kler.cn/a/535878.html

相关文章:

  • JavaScript 中的 CSS 与页面响应式设计
  • 【分布式理论六】分布式调用(4):服务间的远程调用(RPC)
  • 前端控制器模式
  • go流程控制
  • CSS关系选择器详解
  • 【C++】STL——stack的底层实现
  • 【数据结构-Trie树】力扣720. 词典中最长的单词
  • android 打包AAR-引入资源layout-安卓封包
  • 网络计算机的五个组成部分
  • 2.5-数据结构:AVL树
  • DeepSeek 开源模型全解析(2024.1.1–2025.2.6)
  • 2025年2月6日(anaconda cuda 学习 基本命令)
  • 《ISO/SAE 21434-2021 道路汽车--网络安全工程》标准解读
  • 大模型的底层逻辑及Transformer架构
  • multisim入门学习设计电路
  • react18新增了哪些特性
  • ASP.NET Core中Filter与Middleware的区别
  • C++_数据结构_AVL树
  • mysql 数据导出到文件
  • Android 单例模式:实现可复用数据存储
  • java解析复杂json
  • maven不能导入依赖和插件Cannot resolve plugin org.apache.maven.plugins:maven-xxx
  • Linux网络配置(超详细)
  • 【声音转文字CapsWriter】声音随时转化为文字,CapsWriter提高工作效率
  • < 自用文儿 > Linux / Unix 的 VI 编辑器 快捷命令集 看到安装包叫 vim
  • Sentinel的安装和做限流的使用