JS GZIP壓縮,GZIP解壓
阿新 • • 發佈:2019-01-02
使用方法:
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如圖: