Javascript如何压缩JSON数据及应用
Javascript如何压缩JSON数据及应用, 用于在HTTP传输中压缩数据, 提升传输效率
有什么用
抛砖引玉, 仅先以接口传输中的HTTP传输, 来谈为什么要压缩数据? 有什么用?
比如: 压缩数据, 可以是POST的body中需要传输的JSON数据包变小, 数据变少. 从而实现更高效的传输
这与本声HTTP传输中的, HTTP 传输内容的压缩 有不同之处, 一个是在协议层面上对数据进行压缩; 而本文要谈的是在特定的HTTP接口环境下, 使用自定义的压缩方式.
假如存在二者同时混用的情况下, 是否会让数据的解压缩发生异常, 或者数据的二次压缩是否导致其他的异常, 不再本文的讨论范围内.
怎么用
使用pako库解压gzip字符串的步骤如下:
导入
pako库:可以使用<script>标签将pako库直接引入到HTML页面中,也可以使用npm安装并在JavaScript文件中使用import语句导入。解压字符串:使用
pako.inflate()方法对gzip格式的字符串进行解压缩。该方法的参数为一个Uint8Array类型的数据,需要将gzip格式的字符串转换为Uint8Array类型的数据。
1 | // 压缩JSON数据 |
相关内容
实现方法
NetSuite引入pako库
待实例测试的pako库
https://github.com/nodeca/pako/blob/master/dist/pako_deflate.es5.js
https://github.com/nodeca/pako/blob/master/dist/pako.js
https://github.com/nodeca/pako/blob/master/dist/pako_deflate.js
NetSuite调用压缩函数
Sometime you can wish to work with strings. For example, to send stringified objects to server. Pako’s deflate detects input data type, and automatically recode strings to utf-8 prior to compress. Inflate has special option, to say compressed data has utf-8 encoding and should be recoded to javascript’s utf-16.
1 | const pako = require('pako'); |
灵感来源
https://github.com/nodeca/pako