2011-06-20 6 views
1

現在、私が取り組んでいる大規模なアプリケーションは、すべての小さな画像を別々に、通常はオンデマンドでダウンロードします。 20バイトから40キロバイトの範囲の約1000の画像。私はClientBundleを最も使用されている小さいものに使用することで、クライアントのパフォーマンスが向上するかどうかを判断しようとしています。 私は今、サイドのために '多くの接続の高レイテンシ'の問題を入れて、ちょうどjavascript/CSS /ブラウザのパフォーマンスに集中しています。 一部の画像はCSS内で直接使用されています。いつものようにそれらをスプライトすることによってパフォーマンスが向上しますか? 一部の画像は新しい画像(URL)として作成されます。このようにして、CSSに移動してスタイルをディナミカルに適用するか、ClientBundleからロードする方が良いでしょうか? 一部のアクションの結果は、イメージのsetURLになります。 ClientBundleで同じコードを実行でき、おそらくそのイメージのdataURIが設定されることがわかりました。パフォーマンスを向上させるか、このように高速ですか?最速? ClientBundleとプレーンなURL画像を比較する

私は起動時間よりもランタイムについて詳しく説明しています。これは、長い使用時間が見られるアプリケーションであり、すべての画像が最初の10分間にキャッシュされるため、ラウンドトリップは問題ではありません(今のところ)。

答えて

1

短い答えは実際には(FF、クロム、サファリ、オペラ用)ではありませんが、時にはIE用(< 9)です!

あなたが必要とするすべては、それらのすべてを取得するための1つのHTTP接続になるように...バンドル... 1に、すべての画像

Clientバンドルパッケージを何クライアントバンドル見てみましょう...と、それ次回アプリケーションをロードするときに鮮度の参照が1つだけ必要です。 (n回ではなく、nはあなたの小さな画像の数です。本当に無駄です。)

クライアントバンドルは、アプリケーションの読み込み時間を大幅に改善します。ある特定の画像がダウンロード取得に失敗したり、インターネット上で失われ

実行時のパフォーマンスがあり

多分倍。 1000の接続をすると、間違っている可能性が高くなります(ただし、少しです)。 FF、Chrome、Safari、Operaは単にロゴが見つからない画像を置いて実行中に移動します。 IE < 9しかし、これらの特定の画像を取得しようとすると、そのうちの1つの接続を使用して許可されます。これはIEのパフォーマンスに実際に影響します。

それ以外の場合、新しいウィジェットを非同期的に読み込み続けると、後でイメージがダウンロードされるため、パフォーマンスが向上します。

Jai

+0

いくつかのクライアントバンドルの使用を検討することもできます。そうすれば、非同期の要求を1000個も持たなくても利用できます。バンドルの1つに、すぐに必要となることが分かっているリソースしかない場合があります。 (確かに最初にロードする方法があります...) – Andrew

関連する問題