0

EARfileに含まれている事前に圧縮されたファイルを送信することは可能ですか?より具体的には、WARファイル内のjspファイルとjsファイル。WebサーバーとしてApacheHTTPを使用しています。deflateモジュールをオンにして、事前に圧縮されたバージョンのファイルを使用するように設定するのは簡単ですが、これをEARファイルに含まれるファイルに適用したいと思います。これはJBossにデプロイされます。その理由は、コンテンツが非常に静的であり、毎回オンザフライでコンテンツを圧縮することは、CPU時間の点で非常にコストがかかるためです。

率直に言って、私はJBossがこれらのEARファイルをデプロイして「提供」する方法に完全には精通していません。私がやりたいことの要点は、戦争に含まれるファイルを事前に圧縮して、要求されたときにContent-Encoding用のgzipでクライアントに返送されるようにすることです。

4

2 に答える 2

0

理論的には、EARにパックする前に圧縮してから、圧縮されていることをクライアントに通知する応答にhttpヘッダーを追加するカスタムコントローラーを使用して提供することができますが、これは大変な作業のようです。に。

オンザフライ圧縮は非常にコストがかかると言うとき、実際にそれを測定しましたか?多数の非圧縮ページを要求し、CPU使用率を測定してから、圧縮ページと再度結び付けてみましたか?影響を過大評価しているのではないかと思います。非常に低強度のストリーム圧縮を使用し、CPUリソースをほとんど使用しないように設計されています。

それを軽減するためにそのような長さに行く前に、あなたはあなたが実際のパフォーマンスの問題を抱えていることを非常に確信する必要があります。

于 2009-07-01T07:42:21.010 に答える
0

私はこのサイトに頻繁にアクセスすることはなく、このスレッドをぶら下げたままにしたようです。申し訳ありません。javascriptファイルとcssファイルを圧縮することに成功しました。私がしたことは、gzipを使用してantビルドプロセスでそれらを事前圧縮することでした。次に、gzip拡張子を取り除くために名前を偽装する必要がありました。だから私はfoo.jsを持っていて、それをfoo.js.gzipに圧縮しました。このfoo.js.gzipの名前をfoo.jsに変更しました。これは、WARファイルにパッケージ化されるファイルです。これで予圧部分を処理します。このファイルを適切に提供するには、http応答のcontent-encodingヘッダーを介して、このファイルが圧縮されていることをブラウザーに通知する必要があります。これは、*。js拡張子に一致するファイルに適用される出力フィルターを介して行われました(一部のJava / JBoss、役立つ場合はWEB-INF / web.xml。これについてはあまり詳しくないので、ごめんなさい)。

于 2009-08-27T21:25:14.120 に答える