2011-01-24 9 views
1

iPhoneのアプリケーションがあります。このアプリケーションは、ページ/画面ごとに25個の製品を表示します。製品名、価格、割引、製品イメージのURLなどのテキスト項目は、すべての25製品のサーバーから最初にダウンロードされます。サーバーからiPhoneに画像をダウンロードする際のパフォーマンス上の問題

その後、25の製品イメージを1つずつダウンロードするように25の同期要求を行います。各画像のサイズは約25KBで、サイズはおよそ300×400ピクセルです。iPhoneに表示するには72×72ピクセルの画像しか必要ありません。 1つの画面/ページを表示するには約40秒かかりますが、この種のパフォーマンスは良くありません。そこで、パフォーマンスを向上させる方法を検討しています。

  1. サーバー上のイメージのサイズを72x72ピクセルに縮小すると、パフォーマンスが向上しますか?
  2. また、サーバーからiPhoneに25枚の画像をすべてダウンロードすることは可能ですか?もしそうなら、それをどうやって行うのか、あなたのアプローチを共有してください。パフォーマンスを向上させることができる場合にのみ、これを実行したいと考えています。
+2

おそらく、これはStackoverflowでよく聞かれるでしょうか? –

+0

合意された、i​​OSとMac OSのプログラミングに関する質問は、http://stackoverflow.com/にあります。 –

答えて

2

私はあなたが既に述べたようにStackoverflowでこれを尋ねることをお勧めします。

プログラマーの観点から見ると、72x72の画像だけが必要な場合は、間違いなくその画像を表示する必要があります。帯域幅、バッテリー、処理能力を節約できます。

次に、25個の同期リクエストが悪い考えのようですが、ページ全体(または2ページ)を同時に持たないのはなぜですか?

URLリクエストは本質的に「遅い」ので、作成する回数が少ないほど動作が速くなります。

「私に最初の25を渡す」のようにバッチフェッチを許可するようにサーバーを変更してから、ローカルで処理します。次に、ユーザーが次のボタンを押したときに非同期的に(そしてプリエンプティブに)次の25をフェッチすることができます(事前に1または2を常に持っています)。

可能な場合はローカルにキャッシュを保存し、そのページがローカルで使用できるかどうかを常に確認するので、ユーザーが戻ると次に次へを押したときにレコードを再フェッチする必要はありません。ダウンロードしたものはダウンロードされたままです:)製品ページではそれを頻繁に変更しないでください。

具体的な実装については、StackOverflowにジャンプすることをお勧めします。

関連する問題