2009-06-15 200 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該網址將顯示縮小的大小。