javascript - 为 JSON 数据传输选择合适的压缩方案

标签 javascript json lzma

David 发表一些评论后,我决定修改我的问题。可以在下面找到原始问题以及新修改的问题。我离开原来的问题只是为了了解为什么开始这个问题的历史。

原始问题(为 jslzma 设置 LZMA 属性)

我有一些需要使用 ajax 传输的大型 json 文件。我目前正在使用 jQuery 和 $.getJSON()。我想使用 jslzma library在收到文件后解压缩文件。目前,我正在使用带有 pylzma 库的 django 来压缩文件。

唯一的问题是缺少 jslzma 库的文档。有一些,但还不够。所以我有两个关于如何使用该库的问题。

举个例子:

LZMA.decompress(properties, inStream, outStream, outSize);

我知道如何设置 inStream 和 outStream 变量,但不知道 propertiesoutSize。那么谁能举例说明如何设置 properties 变量(即预期的内容)以及如何计算 outSize...

谢谢。

编辑 #1(修改后的问题)


我正在寻找一种适合使用 python (django) 和 javascript 处理高度可重复数据的压缩方案。

正在传输的数据包含高程测量值。每个文件都有 1200x1200 个数据点,这相当于未压缩的原始二进制形式的大约 2.75MB。 JSON 将其膨胀到 5-6MB 之间。我还研究了 base64(只是为了涵盖所有基础),这会减小大小,但我在 js 中没有成功读取它。我认为数据本身很容易压缩,因为数据值具有高度可重复性。例如,一个文件只有 83 个唯一高程值来描述 1440000 个数据点。

我只是运气不太好,主要是因为我才刚刚开始学习 JavaScript。

那么有人可以为这种类型的数据建议一种压缩方案吗?目标是通过减小数据大小来最小化传输时间。

谢谢。

最佳答案

就其值(value)而言,LZMA 通常在压缩和解压缩时都非常缓慢;因此,使用更快的压缩方案更为常见。标准 GZIP(deflate)具有相当好的平衡:它的压缩率是可以接受的,而且它的压缩速度比 LZMA 或 bzip2 好得多。 此外:大多数网络服务器和客户端都支持自动处理 gzip 压缩,这使得使用起来更加方便。

关于javascript - 为 JSON 数据传输选择合适的压缩方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8109875/

相关文章:

javascript - 对于使用 XMLHttpRequest 更改其内容的页面来说,合适的事件监听器是什么?

javascript - 如何从 php 中检索 json 数据

c - 如何在 visual studio 中传递多个命令参数?

javascript - 如何修改此 jQuery 插件 slider 的滚动和方向?

javascript - 使用 AJAX 调用生成的数据用于 OnClick 事件

javascript - SVG 蒙版始终使元素不可见

python - 如何使用 python 更新 Elastic Search ( Kibana ) 中可用的大量 Json 数据

ios - Objective-C Json 获取和解析数据

c++ - 如何压缩文件夹使用 lzma sdk?