教你微信小游戏使用服务端gzip数据。
发布于 1 个月前 作者 vlinr 97 次浏览 来自 分享

开发遇到服务端一次性返回数据表,大概在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); } 以上真机测试通过,不喜勿喷,喜欢的分享一下呗,如果要了解更多(服务端处理),欢迎访问 :微拎录

回到顶部