0

我在我的应用程序中将大量 XML 从服务器传输到客户端(每次 250K-500K)。

如何在服务器上压缩它,并在客户端使用标准 JavaScript 解压它?是否可以?

4

2 回答 2

2

首先,责骂和可能的解决方法。其次,一个可能的疯狂解决方案。

责骂

如果您在客户端和服务器之间来回发送 250k - 500k,那么您做错了。调查

  1. 只请求和发回您需要的信息

  2. 如果 XML 中的信息不经常更改,请将您的 Web 服务器配置为对这些请求进行积极的 http 缓存。另外,考虑在初始页面请求中发送“不经常更改信息”而不是从服务器获取它

  3. 考虑发送 JSON 而不是 XML。JSON 不像 XML 那样冗长,而且通常占用的空间更少。如果您的客户端代码需要一个 XML 对象,请从您刚刚下载的 JSON 中重建它。

  4. 如果您使用的是 apache,mod_deflate 将为可以接受它的客户端压缩您的数据。上次我研究 IIS 上的 gzip 编码时,它确实是在磁盘上压缩和解压缩,这很快成为高负载情况下的瓶颈 (YMMV)

疯狂的解决方案

如果您一心想尝试 compress-in-javascript 路线,LZ77 压缩算法已被移植到大多数语言,包括 javascript

为您的服务器平台找到类似的代码,压缩 XML,然后将其提供给上面链接中的代码。为了避免编码问题,我会在发送压缩数据时尝试将压缩数据本身包装在 XML 或 JSON 中。

Javascript 压缩性能会很慢。as.molasses,这就是我不鼓励这条路线的原因。

于 2008-12-20T21:54:18.500 回答
1

这是 HTTP 类型的传输吗?

最简单的方法是查看 Web 服务器端的压缩。

XML 通常压缩得很好。

于 2008-12-20T20:56:13.217 回答