6

我正在寻找一种解决方案来压缩 JavaScript 中的字符串,使用 GET (jsonp) 发送它,然后使用 PHP 解压缩。最好的办法是拥有快速的代码和良好的压缩。

我找到了lz-string库,但看起来它没有 PHP 后端。任何其他类似的库或 lz-string 的 PHP 实现?

4

2 回答 2

0

你可以试试 - http://rosettacode.org/wiki/LZW_compression,它有 JavaScript、php 和其他语言的实现。

于 2014-12-26T10:24:47.543 回答
0

至于客户端 javascript 压缩检查这个 deflate 实现:

https://github.com/dankogai/js-deflate

要解压 PHP 端,你只需要 gzinflate()

陷阱

  1. 如果您想将压缩数据从客户端发布到服务器,最好先对其进行 base64 编码。在服务器端,您必须调用 gzinflate(base64_decode($post_body));

  2. javascript deflate 实现或 PHP inflate 实现都不是 100% 正确的,有时 gzinflate 很少返回错误。这意味着如果你沿着这条路走,你应该有一些后备机制,比如:尝试发布压缩数据。如果它失败回退到未压缩的数据。

  3. 保持压缩级别,否则您一定会遇到 javascript 超时错误

  4. 如果您计划压缩大量数据 (100+ KB),可能在较旧的浏览器 (IE <=9) 上,您需要拆分主 deflate 循环,以便它异步(使用 setTimeout)处理较小的数据块时间。理想情况下,每个块不应让 JS 解释器忙碌超过 100 毫秒,否则您要么会降低 UI 响应能力,要么会遇到丑陋的 JS-timeout 弹出错误。

于 2014-01-31T22:18:57.667 回答