JavaScript で解凍する必要がある Web 要求からの gzip された応答があります (実際には、AJAX 呼び出しの成功関数で - 私のコードはヘッドレス ブラウザーで実行されており、組み込みの gzip 処理サポートが提供されていません)。フルブラウザで)。私は答えを探していましたが、少し困惑しています。
理想的には、コードが欲しいのは次のとおりです。
var my_decompressed_string = someGzipDecompressor(xhr.responseText);
私が見つけたのは、Gzip の JavaScript 実装での答えだと思っていましたが、それは私が望んでいた答えではないかもしれません。次のコード スニペットを使用して、前述の jsxcompressor ライブラリを使用しようとすると、
var my_decompressed_string = JXG.decompress(xhr.responseText);
...わかりました...
TypeError: 'undefined' is not an object (evaluating '(new JXG.Util.Unzip(JXG.Util.Base64.decodeAsArray(str))).unzip()[0][0]')
その関数をさらに詳しく見てみると、 decompress() 関数によって実行されているコードを分割すると、内部部分によって返された何か良いものであると思われるものが得られます...
JXG.Util.Base64.decodeAsArray(xhr.responseText)
...しかしundefined
、外側の部分のために返されました...
JXG.Util.Unzip( ... )
もちろん、それは行き止まりかもしれませんが、誰かが私の元の質問が可能になる方法を知っているか、jsxcompressor.jsで運が良かったなら、私はそれを感謝します.
もちろん、AJAX 要求に「deflate」応答を返すように強制することはできますが、ページのサイズ (制御できない) がかなり大きく、gzip を要求することは、ページの読み込み時間を短縮するための試みです。