[]教你微信小游戏使用服务端gzip数据。
开发遇到服务端一次性返回数据表,大概在3M左右的数据,然后慢的一逼,结果和服务端协商使用gzip进行压缩,然后我解压,折腾了半天,终于搞定了,现在分享给大家,直接上代码:
首先:去下载 pako.js,这个直接百度,npm下载就可以了
然后
//暴露一下
window.Pako = require('./pako_inflate.min.js');
wx.request({
url: '请求地址',
responseType: 'arraybuffer',
success(res) {
console.log(fromCharCode(Pako.inflate(new Uint8Array(res.data))));
}
});
//处理中文
function decodeUTF8(arr,toType) { //转为utf8编码字符串
let str = '';
for (var i = 0; i < arr.length; i++) {
str += String.fromCharCode(arr[i]);
}
return toType === 'json' ? JSON.parse(decodeURIComponent(escape(str))) : decodeURIComponent(escape(str));
}
//转换成byte
function fromCharCode(pakoData,toType = 'json'){
let converted = [], uintArray = new Uint16Array(pakoData);
uintArray.forEach(function (byte) {
converted.push(String.fromCharCode(byte))
})
return decodeUTF8(pakoData, toType);
}
以上真机测试通过,不喜勿喷,喜欢的分享一下呗,如果要了解更多(服务端处理),欢迎访问 :微拎录
首先:去下载 pako.js,这个直接百度,npm下载就可以了
然后
//暴露一下
window.Pako = require('./pako_inflate.min.js');
wx.request({
url: '请求地址',
responseType: 'arraybuffer',
success(res) {
console.log(fromCharCode(Pako.inflate(new Uint8Array(res.data))));
}
});
//处理中文
function decodeUTF8(arr,toType) { //转为utf8编码字符串
let str = '';
for (var i = 0; i < arr.length; i++) {
str += String.fromCharCode(arr[i]);
}
return toType === 'json' ? JSON.parse(decodeURIComponent(escape(str))) : decodeURIComponent(escape(str));
}
//转换成byte
function fromCharCode(pakoData,toType = 'json'){
let converted = [], uintArray = new Uint16Array(pakoData);
uintArray.forEach(function (byte) {
converted.push(String.fromCharCode(byte))
})
return decodeUTF8(pakoData, toType);
}
以上真机测试通过,不喜勿喷,喜欢的分享一下呗,如果要了解更多(服务端处理),欢迎访问 :微拎录
没有找到相关结果
已邀请:
要回复问题请先登录
0 个回复