7

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

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

struts2 ajax はこれほど重いはずですか? または、利用可能なより軽い実装はありますか?


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

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

さらなる変更について更新し続けます..

4

3 に答える 3

8

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

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

動的データにも適用されることを忘れないでください。効率的なフォーマットを選択し、関連する複数のリクエストをまとめて、変更されずに何度も何度も送信されるデッドウッドをすべて取り除きます。

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

  • 上記のリンクで説明されているスプラッシュ スクリーン手法を評価します。
  • さまざまなフォーム ウィジェットを多数使用している場合は、それが本当に必要かどうかを確認し、「input」、「button」、「textarea」、「select」などの通常の DOM 要素に頼ってください。
  • 同じことがレイアウト ウィジェットにも当てはまります。シンプルな CSS が役立つかどうかを確認してください。
  • 必要なサブセットのみが Web ページによってロードされるように、1 つのモノリシックな dojo.js ではなくレイヤーで Dojo を構築することを評価します。The Package System と Custom Buildsで詳細を参照してください。

過去 2 年間、Dojo で Web アプリケーションを構築して生計を立てていましたが、エンド ユーザーに完全に受け入れられ、「高速」、「機敏」、および「軽量」であると認識されるまで、適切に最適化できないアプリケーションはまだ見当たりませんでした。 .

于 2008-11-29T19:16:36.663 に答える