[]教你微信小游戏使用服务端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);
}
以上真机测试通过,不喜勿喷,喜欢的分享一下呗,如果要了解更多(服务端处理),欢迎访问 :微拎录
已邀请:

要回复问题请先

商务合作
商务合作