1. 程式人生 > >JS GZIP壓縮,GZIP解壓

JS GZIP壓縮,GZIP解壓

使用方法:

JS壓縮和解壓:


var pako = require('../../utils/pako.min.js');
Page({
  data: {
  },
  onShow: function () {
    var key = 'absd';
    var _data = '{"body":{"banners":[],"ptypes":[{"addr":1,"productTypes":[1]},{"addr":2,"productTypes":[2]},{"addr":3,"productTypes":[3]}]},"success":true}';
    var data = zip(_data);
    console.log("壓縮data:",data);
    console.log("解壓壓縮後的data:",unzip(data));
    var time = new Date().getTime(); 
    for (let i = 0; i < 1000; i++) {
        zip(_data)
    }
    console.log('壓縮一千次使用時間/毫秒:', new Date().getTime() - time)
  },
})  

// 解壓
function unzip(key) {
  // 將二進位制字串轉換為字元陣列
  var charData = key.split('').map(function (x) { return x.charCodeAt(0); });
  console.log('壓縮後的檔案大小:', charData.join(","))

  // 將數字陣列轉換成位元組陣列
  var binData = new Uint8Array(charData);

  // 解壓
  var data = pako.inflate(binData);

  // 將GunZip ByTAREAR轉換回ASCII字串
  key = String.fromCharCode.apply(null, new Uint16Array(data));

  //unescape(str)  --->解壓後解碼,防止中午亂碼
  return unescape(key);
}

// 壓縮
function zip(str) {
  //escape(str)  --->壓縮前編碼,防止中午亂碼
  var binaryString = pako.gzip(escape(str), { to: 'string' });
  return binaryString;
}

檔案引用程式碼目錄結構如圖:

console如圖: