假设我有一个400K文本文件,我想从javascript中读取。问题是,我的目标受众连接速度很慢,因此加载400k可能需要很长时间。
我想我需要压缩文件,但是,如何在客户端通过javascript解压缩?
是否值得,或者减压所需的时间是否会减少下载时节省的时间?
更新
为了清楚起见,文件是文本(数据)而不是代码。
答案 0 :(得分:8)
您可以GZip文本文件,并将其发送到浏览器。这样你就不必在客户端做任何事情,浏览器本身会解压缩它。
答案 1 :(得分:1)
你能使用HTTP压缩吗?
答案 2 :(得分:1)
这看起来很有趣: http://rumkin.com/tools/compression/compress_huff.php
一些带有大量文字的测试结果非常好。
答案 3 :(得分:0)
[老问题,但万一其他人偶然发现了这个......]
处理此问题的最佳方法是使用HTTP compression。所有主要的Web服务器和Web浏览器都支持此功能事实上,如果您使用的是网络托管服务,并且您的文件是通常需要压缩的文件类型(例如css,js,html),那么它可能已经被压缩用于传输而您只是不知道它。 / p>
答案 4 :(得分:0)
是的,你不必自己处理压缩/解压缩浏览器只为你必须为你正在使用的服务器指定服务器参数。 注意:您可以明确指定所有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(开发者的工具)[我的是Chrome] - &gt;网络标签 - &gt;开始录音。 单击响应所需数据/文本的请求URL。 然后转到标题选项卡。
你会看到。
REquest / REsponse Headers
Content-Encoding:gzip
Accept-Encoding: gzip, deflate
它使用编码。再次显示网络标签中的尺寸列,网址将显示缩小的尺寸。
答案 5 :(得分:-3)
DECOMPRESS JAVASCRIPT
不可能隐藏压缩代码。
使用/ packer /压缩的典型JavaScript使用以下代码启动:
`eval(function(p,a,c,k,e,r)`…
`eval` can simply be replaced by `alert`.
eval
函数计算包含JavaScript的字符串参数。在大多数包装工具中,使用eval
,然后使用document.write
。
要解压缩JavaScript,请使用以下方法之一替换这些方法:
1。将eval
替换为alert
(像这样: alert(function(p,a,c,k,e,r)
... 并打开或刷新html页面,警报将只是在弹出窗口中打印代码)
2. 如果JavaScript出现在<body>
元素之后,您可以像这样添加<textarea>
:
`<textarea id="code"></textarea>`
然后,替换eval
(...);按document.getElementById("code").value=…;
从两个选项中,第一个更简单......祝你好运:))