Vue组件上报监控数据时,压缩后的JSON体积反而更大怎么办?
我在Vue项目里做监控上报,想用gzip压缩数据再发送,但发现压缩后的base64字符串比原始JSON还大20%。用的是pako库,数据量大概3KB左右,这是为什么呢?
<template>
<button @click="sendData">提交监控数据</button>
</template>
<script>
import { deflate } from 'pako';
export default {
methods: {
sendData() {
const data = { /* 3KB的监控数据 */ };
const compressed = deflate(JSON.stringify(data));
// 转base64时体积反而变大
const payload = btoa(String.fromCharCode.apply(null, new Uint8Array(compressed)));
fetch('/api/log', { body: payload });
}
}
}
</script>
尝试过调整压缩级别和用不同的编码方式,但效果都不好。如果压缩没效果,是不是应该换其他方案?或者数据量小的时候确实不适合用gzip?
小数据就该简单处理,别整那些花里胡哨的。