如果只提交一点点东西(小于20KB),就别费这劲儿了,还没引入的类库大。
如果传输的是图片啊视频之类的文件,也别费心了,大,而且再压也压不出什么水分来。
如果提交大量的文本,倒是可以考虑一下,不过这种场景真的不多。
1. 判断用户端是否支持 WebWorker 和 TypedArray,如果不支持就直接提交原文本
2. 在 worker 线程里引入 pako/zlib.js/lzw 库,lzw 算法简单,类库小一些
3. 将原文本传入 worker,worker 压缩完后返回一个buffer (这里用 transferable ,传输速度会快很多倍)
4. 将压缩过的buffer 提交给服务器