Struts 2& Dojoファイルは重すぎて、サイトのパフォーマンスに影響します。

StackOverflow https://stackoverflow.com/questions/327820

質問

まあ.. struts2 ajax機能を使用してj2eeアプリケーションを開発しました。 dojoの実装は非常に遅いことがわかります。次のことを行いました。 1. dojoライブラリーのカスタムビルド。 (dojo.jsを240kbから350kbに増やしました) 2. Struts jarからすべての静的なものを取り出し、外部に保管します。

パフォーマンスが大幅に改善されました。しかし、350kbのサイズで推測できるように、それでもかなり重いです。

struts2 ajaxはこれほど重いはずですか?または、より軽い実装がありますか?


編集:アプリケーションでFirebugとYSlowを使用しました。私の状況を大きく改善したいくつかの変更を以下に示します。

  1. dojoのカスタムビルド(I / Oの数を削減)
  2. Struts jarから静的ファイルを移動します(大いに役立ちました)
  3. 応答をgzipするようにサーバーを調整します(応答サイズを1/3に減らしました)
  4. サイト上の画像の数を減らします(これは明らかです)

さらに変更があれば更新し続けます。

役に立ちましたか?

解決

まず、キャッシュを容易にするためにサーバーですべてを行ったことを確認します(たとえば、正しいHTTPヘッダーの設定、圧縮、サーバー側のキャッシュ、アップストリームキャッシュなど)。詳細については、パフォーマンスの改善… を参照してください。

目標は、I / Oを可能な限り減らすことです— Firebugまたはその他のネットワークトラフィック監視ツールを使用して、送受信される量を確認します。 I / O要求の数と合計バイト数を最小限に抑えるようにしてください。

動的データにも適用されることを忘れないでください—効率的な形式を選択し、関連する複数のリクエストをまとめて、何度も送信されるデッドウッドをすべて削除します。

カスタムビルドとサーバー側の調整が役に立たなかった場合は、Webアプリをより軽量に再構築することを検討してください。例:

  • 上記のリンクで説明したスプラッシュスクリーンテクニックを評価します。
  • さまざまなフォームウィジェットを使用する場合、本当に必要かどうかを確認し、" input"、" button"、" textarea"、" select"などの通常のDOM要素にフォールバックします。
  • レイアウトウィジェットについても同様です。簡単なCSSが役立つかどうかを確認してください。
  • 1つのモノリシックなdojo.jsではなく、レイヤーでDojoを構築することを評価して、必要なサブセットのみがWebページによってロードされるようにします。詳細はパッケージシステムとカスタムビルド

Dojoを使用して過去2年間にわたってWebアプリケーションを構築することは、エンドユーザーによって「高速」、「軽快」、および完全に受け入れられ、認識されるまで、適切に最適化できないものを見ていませんでした。 「軽量」。

他のヒント

最初にこのFAQを確認してください: http://struts.apache.org/2.x/docs/ performance-tuning.html

通常、dojoが組み込まれたstruts2 ajaxテーマを使用する代わりに、独自のテーマを書き直します。これにより、使用したいツールキット(jQuery)を使用できます。テンプレートフォルダをjarからwebappのルートWebディレクトリにコピーすると、パフォーマンスが最大に向上しました。

最後に確認したように、strutsはDojo(0.4)のリリースを出荷していましたが、2年経っています。 Dojoはバージョン0.9 / 1.0の書き直しを行い、大幅なパフォーマンスの向上とコードサイズの削減を実現しました。 Dojoの最新バージョン(現在のバージョンは1.2.3)を実行していることを確認し、上記のEugeneのビルドとヒントを使用する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top