2

アプリケーションのフロントエンドのパフォーマンスを向上させたいので、Firefox で YSlow ツールを使用しました。アプリでこのツールを実行すると、YSlow グレード タブに「gzip を使用した Compress コンポーネントのグレード F」という問題が表示されました。サーバーからクライアントへの送信中にファイル(js、css)を圧縮して、サーバーの応答時間を長くする必要があるようです。

私のアプリは Struts Java アプリケーションです。フロントエンド UI ファイル (JS、CSS) を圧縮してサーバーから送信し、応答時間が長くなり、ページが高速になるようにする方法を教えてください。これらのファイルをサーバーで Java で圧縮するには、どうすればよいですか?

4

5 に答える 5

6

サーブレット フィルターを使用することをお勧めします(サーブレット 2.3 仕様以降)

gzip フィルターは十分に文書化されているため、車輪を再発明する必要はありません。

また、一部のサーブレット コンテナーは、オンザフライで gzip を実行できます。この関連する質問を見てください。

于 2010-03-02T10:38:14.880 に答える
2

Java EE Web アプリケーションのクライアント側のパフォーマンスを向上させるには、WebUtilities Java ライブラリが役立ちます。

ここにリンクがあります:: https://github.com/rpatil26/webutilities

また、maven central からも入手できます。

バージョン 0.0.4 以降、次のパフォーマンス プラクティスに役立ちます。

  1. HTTP リクエストを最小限に抑える - 1 つのリクエストで複数の JS/CSS ファイルを処理できます
  2. クライアント側キャッシング - 適切な Cache-Control、Expires ヘッダーを追加
  3. オンザフライ JS/CSS 縮小 - YUICompressor を使用
  4. 圧縮 - gzip/deflate/compress エンコーディングの双方向圧縮をサポート
  5. サーバーでの応答キャッシュ - 変更されていないリソースの再処理を避けるため
  6. 文字エンコーディングを追加 - ブラウザに事前に知らせる
于 2011-03-31T12:48:51.247 に答える
1

Granule Tag lib http://code.google.com/p/granule/を使用することをお勧めします

gzip し、g:compress タグでラップされた JavaScript を結合します

コードサンプルは次のとおりです。

<g:圧縮>
  <script type="text/javascript" src="common.js"/>
  <script type="text/javascript" src="closure/goog/base.js"/>
  <スクリプト>
       goog.require('goog.dom');
       goog.require('goog.date');
       goog.require('goog.ui.DatePicker');
  </script>
  <script type="text/javascript">
      var dp = 新しい goog.ui.DatePicker();
      dp.render(document.getElementById('datepicker'));
  </script>
</g:圧縮>
...

于 2011-04-03T21:08:41.740 に答える
0

通常、appserver/servletcontainerレベルで構成します。どちらを使用しているのかわからないので、Tomcatをターゲットにした例を次に示します。次のようにコンポーネントを構成します/conf/server.xml<Connector>

<Connector compression="on">

それで全部です。を追加するだけcompression="on"です。他のサーバーは同等の設定を提供します。詳細については、ドキュメントを参照してください。多くの場合、Tomcat上に構築されているため、まったく同じです。

Java EE Webアプリケーションの観点でのYSlowのヒントについては、このブログ記事の方が役立つ場合があります。

于 2010-03-02T14:18:00.813 に答える
0

JSとCSSを縮小しようとするのではなく、圧縮しようとしているのですか?通常、JSとCSSは、キャッシュヘッダーがWebサーバーによって正しく設定されている場合、最初のアクセス後にブラウザーによってキャッシュされます。実際には、JSとCSSを縮小することで、ブラウザーによる最初のダウンロードには通常十分であることがわかりました。

多くのJSミニファイアがあります。たとえば、1つはここにあります

于 2010-03-27T04:08:11.623 に答える