画像のサムネイルの画面を表示するアプリケーションがあります。各画像は約80kで、データベースに保存されています。応答時間を合理的に保つために、アプリケーションは最初に起動したときにプレースホルダーイメージを表示し、後でサーバーからイメージをダウンロードします。一度に約40枚の画像が画面に表示されることを期待しているので、それが私のバッチサイズです。これらの画像をクライアントに提供するための最良の方法は何ですか?私は2つのオプションを念頭に置いています。
Imagesデータベーステーブルをクライアントに公開するADO.NETデータサービスを作成します。クライアントは、一度に1つずつ非同期で画像を要求し、サーバーから戻ってきたときに画像を表示できます。私はこのソリューションを実装しましたが、うまくいくようです。速度はそれほど速くなく、一度に3つの画像をリクエストすることで、Httpパイプをより有効に活用できると思います。
サーバー上にHttpModuleを作成し、/ Images / 1.jpgのようなリクエストを探してから、データベースを読み取り、リクエストされたデータを返します。クライアント側では、ソースがサーバー上の仮想URLを指す多くのImageオブジェクトを持つことができます。私の理論では、Silverlightに処理する多くのURLを与えるだけで、オプション1のコードよりも効率的に画像を転送できる可能性があります。
これらの方法のどちらかがより効率的でしょうか、それともこれを行うための別の手法がありますか?ありがとう!