压缩数据和解压在javascript

问题描述:

Greerings所有压缩数据和解压在javascript

有没有办法来压缩从PHP(服务器)发送的数据,然后使用JavaScript(客户端)解压缩的数据?

感谢你

+3

你可以'gzip'响应,并让浏览器解压(即在HTTP协议级别的作品)。或者是否有你想用JS解压缩的特定原因? Afaik你必须自己实现逻辑(或者找到一些第三方库)。 –

是;如果您配置您的服务器就可以提供数据,它希望您发送像JSON一个健全的格式,使用GZIP压缩,那么你可以做在JavaScript的Ajax调用,它会被浏览器自动解压缩。

要这样设置,复制these lines到您的.htaccess文件。 (我假设你使用的是Apache,因为这是服务PHP的最常见的平台。)

+0

这相当于在php中压缩和解压缩。毕竟ajax调用将依次执行php。 –

+2

这在PHP中如何等同于压缩和解压缩?解压是在客户端完成的---通过浏览器,而不是JavaScript,但肯定不是通过PHP。 – Domenic

+0

浏览器只是要求服务器调用PHP函数(或ASP/JSP的可能)。 AJAX调用通过javascript在客户端启动,但仅在服务器端结束。 –

如果尽可能缩小响应开销是你的目标,那么JSON DB: a compressed JSON format可能也是你感兴趣的。

我在这里与@ Domenic的答案一致。 @Nishchay Sharma离开了。

我补充一点的是,如果你想这样做对每个脚本的基础上,而不是配置您的整个服务器压缩一切,这是微不足道的使用PHP的gzencode()函数再加上,以实现自己的目标标题号召:

http://www.php.net/manual/en/function.gzencode.php

举例来说,假设你是通过Ajax调用PHP页面获取巨大的数据集。你可以配置PHP页面使用gzencode如下:

<?php 
$someBigString = gzencode('blahblah...blah'); 

header("Content-type: text/javascript"); 
header('Content-Encoding: gzip'); 

echo $someBigString; 
?> 

(这是过于简化了,当然,但我保持简单)

你的JS Ajax调用会拉下来的数据,请参阅gzip标题,并自动解压缩它。我个人将这种技术用于Google地图的非常大的地理坐标数据集,这些数据集在解压缩时可以有很多兆字节的大小。它不会更容易!

+0

非常感谢您节省下来的一天:) –