2012-03-13 59 views
2

我正在構建一個chrome擴展,它將通過POST請求將HTML字符串發送到服務器。用於壓縮POST數據的JavaScript庫?

我想在發送它們之前壓縮這些字符串,因爲它們中的一些可能非常大。

是否有任何JavaScript庫可用,這有助於此?

+0

@olliej對這個話題非常漂亮的答案在這裏:http://stackoverflow.com/questions/3640357/how-to-compress-a-string – 2012-03-13 19:50:41

+0

我沒有答案,但有JS與C++或C#有很大不同的性能特徵。您可能需要執行litte基準來選擇最佳算法。 – usr 2012-03-14 10:45:38

回答

0

我結束了使用RawDeflate library來實現約百分之三十到百分之五十的壓縮。這比在註釋中鏈接的the SO question中列出的所有方法執行得更好。

我寫了下面的Ruby類來擴充服務器上的數據。

require "zlib" 
require "base64" 

class Decompression 
    # Decompress content sent to the server. 
    # 
    # Usage: 
    # 
    # Decompression.decompress(params["raw_content"]) 
    # 
    # Returns string. 
    def self.decompress(string) 
    decoded = Base64.decode64(string) 
    inflate(decoded).force_encoding('UTF-8') 
    end 

private 

    # https://stackoverflow.com/q/1361892/574190 
    def self.inflate(string) 
    zstream = Zlib::Inflate.new(-Zlib::MAX_WBITS) 
    buf = zstream.inflate(string) 
    zstream.finish 
    zstream.close 
    buf 
    end 
end