Struts 2& Dojoファイルは重すぎて、サイトのパフォーマンスに影響します。
-
11-07-2019 - |
質問
まあ.. struts2 ajax機能を使用してj2eeアプリケーションを開発しました。 dojoの実装は非常に遅いことがわかります。次のことを行いました。 1. dojoライブラリーのカスタムビルド。 (dojo.jsを240kbから350kbに増やしました) 2. Struts jarからすべての静的なものを取り出し、外部に保管します。
パフォーマンスが大幅に改善されました。しかし、350kbのサイズで推測できるように、それでもかなり重いです。
struts2 ajaxはこれほど重いはずですか?または、より軽い実装がありますか?
編集:アプリケーションでFirebugとYSlowを使用しました。私の状況を大きく改善したいくつかの変更を以下に示します。
- dojoのカスタムビルド(I / Oの数を削減)
- Struts jarから静的ファイルを移動します(大いに役立ちました)
- 応答をgzipするようにサーバーを調整します(応答サイズを1/3に減らしました)
- サイト上の画像の数を減らします(これは明らかです)
さらに変更があれば更新し続けます。
解決
まず、キャッシュを容易にするためにサーバーですべてを行ったことを確認します(たとえば、正しい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のビルドとヒントを使用する必要があります。