我是靠谱客的博主 难过奇异果,这篇文章主要介绍性能优化之:前端通过gzip压缩,解压大量数据,现在分享给大家,希望可以做个参考。

前言: 

    前后端交互经常会遇到在传输大量数据时造成接口严重耗时,针对这个问题,最常用的方法就是通过压缩数据,使数据体积减小,从而达到快速传输的效果。

压缩工具有很多,今天来讲讲gzip在前端的使用:

1,引入pako
import pako from "pako";
2,js中使用
this.uncompress(ssjson)
//(1)解压缩
uncompress(b64Data) {
var strData = atob(b64Data);
var charData = strData.split("").map(function (x) {
return x.charCodeAt(0);
});
var binData = new Uint8Array(charData);
var data = pako.inflate(binData);
var strData = this.Utf8ArrayToStr(data);
return strData;
},
//(2)fix解压中文乱码
Utf8ArrayToStr(array) {
var out, i, len, c;
var char2, char3;
out = "";
len = array.length;
i = 0;
while (i < len) {
c = array[i++];
switch (c >> 4) {
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
out += String.fromCharCode(c);
break;
case 12:
case 13:
char2 = array[i++];
out += String.fromCharCode(((c & 0x1f) << 6) | (char2 & 0x3f));
break;
case 14:
char2 = array[i++];
char3 = array[i++];
out += String.fromCharCode(
((c & 0x0f) << 12) | ((char2 & 0x3f) << 6) | ((char3 & 0x3f) << 0)
);
break;
}
}
return out;
},
// (3)压缩
compress(json) {
var binaryString = pako.gzip(json, { to: "string" });
return btoa(binaryString);
},

最后

以上就是难过奇异果最近收集整理的关于性能优化之:前端通过gzip压缩,解压大量数据的全部内容,更多相关性能优化之:前端通过gzip压缩内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部