代码之家  ›  专栏  ›  技术社区  ›  hasen

javascript文本压缩/解压

  •  4
  • hasen  · 技术社区  · 15 年前

    假设我有一个400k的文本文件,我想从一个javascript中读取它。问题是,我的目标受众的连接速度很慢,所以400K可能需要很长时间才能加载。

    我想我需要压缩文件,但是,如何通过客户端的javascript来解压缩它呢?

    它值得吗,或者解压所需的时间会抵消下载所节省的时间吗?

    更新

    为了清楚起见,文件是文本(数据)而不是代码。

    6 回复  |  直到 9 年前
        1
  •  8
  •   Kirtan    15 年前

    你可以 GZip 文本文件,并将其发送到浏览器。这样,您就不必在客户端执行任何操作,浏览器本身就会对其进行解压缩。

        2
  •  1
  •   Bluephlame    15 年前

    可以使用HTTP压缩吗?

        3
  •  1
  •   Travis    15 年前

    这看起来很有趣: http://rumkin.com/tools/compression/compress_huff.php

    一些包含大量文本的测试结果非常好。

        4
  •  0
  •   broofa    12 年前

    [旧问题,但以防其他人偶然发现…]

    处理这个问题的最佳方法是 HTTP compression . 所有主要的Web服务器和Web浏览器都支持这一点。事实上,如果您使用的是Web托管服务,并且您的文件是通常需要压缩的文件类型(例如CSS、JS、HTML),那么它可能已经被压缩用于传输,您只是不知道而已。

        5
  •  0
  •   Arun Pratap Singh    9 年前

    是的,您不必自己处理压缩/解压。浏览器是为您自己做的,您只需要为正在使用的服务器指定服务器参数。 注意:您可以显式指定所有mimetype(响应格式)的内容。 前任。

    下面是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(开发人员工具)【Mine is Chrome】->网络选项卡->开始录制。 单击响应所需数据/文本的请求URL。 然后转到标题选项卡。

    你会看到的。

    请求/响应头

    Content-Encoding:gzip
    
    Accept-Encoding: gzip, deflate
    

    它使用编码。网络选项卡中的“大小”列会再次显示URL中减小的大小。

        6
  •  -3
  •   Username    14 年前

    解压缩javascript

    不可能的 隐藏压缩代码。

    典型的用/packer/压缩的javascript以以下代码开头:

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

    这个 eval 函数计算包含javascript的字符串参数。在大多数包装工中, 埃瓦 使用,后面跟着 document.write .

    要解压缩javascript,请将这些方法替换为以下方法之一:

    1。 替换 埃瓦 通过 alert ( 这样地: alert(function(p,a,c,k,e,r) 艾斯 打开或刷新HTML页面,警报只会在弹出窗口中打印代码。 )

    2。 如果javascript出现在 <body> 元素,可以添加 <textarea> 像这样:

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

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

    从这两个选项中,第一个更简单…祝你好运: