2009-06-15 173 views
4

假设我有一个400K的文本文件,我想从javascript读取。问题是,我的目标观众有一个缓慢的连接,所以400k可能需要很长时间才能加载。javascript文本压缩/解压

我想我需要压缩文件,但是,我怎样才能解压缩它通过在客户端的JavaScript?

是否值得呢,还是将解压缩所需的时间否定下载时间保存的时间?

UPDATE

只要是明确的,该文件是文本(数据)不代码。

+1

那么,这取决于文本文件包含的内容!基本上,压缩将删除额外的空格和换行符,这可以大大减少文件大小,但是如何在客户端重新构建文件? – Kirtan 2009-06-15 06:10:01

回答

8

你可以GZip的文本文件,并将其发送到浏览器。这样你就不必在客户端做任何事情,浏览器本身就会解压缩它。

1

您可以使用HTTP压缩吗?

+0

如果我知道我不会问 – hasen 2009-06-15 06:25:27

+3

你可以多一点礼貌。 – NLV 2010-07-23 19:25:27

-3

DECOMPRESS JAVASCRIPT

IMPOSSIBLE隐藏压缩码。

与/封隔器压缩一个典型的JavaScript /启动用下面的代码:

 `eval(function(p,a,c,k,e,r)`… 
     `eval` can simply be replaced by `alert`. 

eval的函数评价为有JavaScript字符串参数。在大多数封隔器中,使用eval,然后使用document.write

要解压缩的JavaScript,通过以下的一个替代这些方法:

更换由alerteval像这样:alert(function(p,a,c,k,e,r) ... 并打开或刷新HTML页面,该警报将简单地在弹出窗口中打印代码

2.如果JavaScript中的<body>元素后出现,你可以添加一个<textarea>像这样:

 `<textarea id="code"></textarea>` 

然后,替换eval(...);通过document.getElementById("code").value=…;

从两个选择,第一是更简单...祝你好运:)

0

[老问题,但以防万一其他人碰到这个绊倒...]

以最好的方式处理这个是使用HTTP compression。所有主要的Web服务器和Web浏览器均支持此功能。事实上,如果您使用的是虚拟主机服务,并且您的文件通常需要压缩(例如css,js,html)的文件类型,那么它可能已经被压缩以用于传输,并且您只是不知道它。

0

是的,你不必自己处理压缩/解压缩浏览器为你做,只有你必须指定你正在使用的服务器的服务器参数。 注意:您可以明确指定所有MimeType(响应格式的) Ex。

下面是tomcat服务器设置参数。

<Connector port="8443" 
    protocol="org.apache.coyote.http11.Http11Protocol" 
      SSLEnabled="true" 
      maxThreads="200" 
      compression="on" 
      compressionMinSize="2048" 
      compressableMimeType="application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,charset=UTF-8,application/x-www-form-urlencoded,text/html,text/plain,text/css,text/javascript,text/json,application/x-javascript,application/javascript,application/json" 
    /> 

要确保压缩工作正常,您可以检查。 按F12(开发者工具)[我的是Chrome] - >网络标签 - >开始录音。 单击响应所需数据/文本的请求url。 然后转到标题的标签。

你会看到。

请求/响应集管

Content-Encoding:gzip 

Accept-Encoding: gzip, deflate 

,使用编码它。并在网络标签的尺寸列againsr该网址将显示缩小的大小。