1

ハイブリッドアプリを起動すると問題が発生します。最初のページの読み込みには非常に時間がかかります。〜40秒。

私はGWTGoogle App EngineRequestFactoriesを使用しています。アプリがサーバーに複数のリクエストを送信していることを検出しました(約10リクエスト)。

今、私はどうすれば私のアプリを見つめるパフォーマンスを向上させることができるのだろうか。

  1. すべてのリクエストを1つのリクエストにグループ化し、1つのリクエストですべてのデータを配信します。(〜300kbデータ)
  2. リクエストとデータの量が少ないスタートアップページを作成します。(〜50kbデータ)
  3. より良いアイデア?

私は、現在のスタートアップページを維持できることを望んでいます。あなたの経験を共有できますか?

4

2 に答える 2

2

起動時間を短縮するための2つの主な方法を指摘しました。

1.-リクエストの削減:RFを使用すると、同じサービスインスタンスを共有し、.fire()メソッドを1回だけ呼び出す場合に、すべてのリクエストを1つにグループ化できます。同じリクエストでダウンロードされるように、画像、css、およびその他のリソースにバンドルを使用します。

2.- jsサイズを縮小します:GWT.runAsync()を使用してコードを分割します。したがって、最初のコードは、ユーザーがアプリを操作するまでアプリを起動するための最小限のものである可能性があります。gwtコンパイルレポートを使用して、コードが大きいかどうかを確認できます。gwt-2.5の新しいクロージャコンパイラを使用して、最終的なjsを削減および最適化できます。

3.-もう1つ確認する必要があるのは、ブラウザがgwtフラグメントをキャッシュするように、Webサーバー構成が適切なヘッダーを送信していることです。また、クライアントに送信する前に、ファイルを圧縮しているかどうかを確認する必要があります。ただし、これらのjsフラグメントを事前に圧縮するようにgwtコンパイラーを作成することはできます。

4.-連続して読み込む場合は、ユーザーが2回目にアプリにアクセスすることを意味します。再度リクエストするのではなく、変更されない特定のものをキャッシュするためにlocalstorageを使用することを検討してください。HTML5Manifestを構成します。mgwtを使用している場合は、コンパイル時にマニフェストを生成するためのリンカーが含まれているため、非常に簡単です。

5.-重いウィジェット(jsコレクション、elemental、gquery、mgwtなど)の代わりに、軽量のウィジェットとフレームワークの使用を検討してください。

于 2013-01-21T08:17:14.277 に答える
0

私はいくつかの推奨事項があります:

  • 起動時に1回のリクエストでめったに変更されないデータをロードします。
  • サーバーでGZip圧縮をアクティブにします。
  • アプリケーションの起動がユーザーのアイドル時間内に終了したときにバックグラウンド呼び出しを使用します。
  • 関連するリクエストを1つのリクエストにグループ化します。
于 2013-01-21T07:09:21.767 に答える