如果后端传输的数据太大, 在前端页面会长时间加载, 给用户造成卡顿的感官, 这时后端可以将数据压缩传输, 前端收到数据后解压使用, 目前项目中使用的是pako
首先 npm install pako
解压和压缩的代码:
import pako from 'pako'
export function unzip (b64Data) {
var strData = atob(b64Data)
var charData = strData.split(',').map(function (x) { return parseInt(x) })
try {
var data = pako.inflate(charData, { to: 'string' })
} catch (e) {
console.log(e)
}
return data
}
export function zip (str) {
let clientData = pako.deflate(str)
clientData = clientData.toString()
// const binaryString = pako.gzip(str, { to: 'string' })
return btoa(clientData)
}
这是最简单的解压和压缩, 如果遇到复杂的情况, 还需要更多的处理.