Есть ли способ получить изображения (64 * 64) с сервера быстрее при работе в Iphone? - PullRequest
0 голосов
/ 07 января 2010

Я хочу быстрее загружать изображения в кэш приложения.

Я создаю своеобразное приложение для карт, загружая одновременно около 25 изображений в UIscrollView, в котором для загрузки каждого изображения требуется около 1 секунды.

Все изображения имеют размер 64 КБ и 256 * 256 размеров. Я делаю кеширование, так что после первой прокрутки будет загружено около 7-8 изображений, и это тоже занимает каждую секунду. Так что в середине прокрутки карты она останавливается на 7-8 секунд.

Есть ли способ увеличить скорость получения изображений, чтобы я мог загружать по крайней мере 4-6 изображений в секунду?

Ответы [ 3 ]

3 голосов
/ 07 января 2010

Вы должны использовать CATiledLayer, который раскручивает отдельный поток для рендеринга каждой плитки. Это то, как приложение «Карты» рисует. Вы можете загрузить его в коде чертежа, и он не будет блокировать основной поток, поэтому прокрутка будет плавной. Загрузка изображений по-прежнему займет некоторое время, но если у вас есть прокси-изображение с низким разрешением, вы можете показать его при загрузке реального изображения.

3 голосов
/ 07 января 2010

Вам нужно освободить основной поток и сделать это в фоновом потоке. Когда вы выполняете большую работу над основным потоком, он блокируется, и ваше приложение перестает отвечать на запросы. (Если вы не знаете, в каком потоке вы работаете, вы, вероятно, в основном потоке.)

Взгляните на руководство по параллелизму Apple .

0 голосов
/ 07 января 2010

Ваш веб-браузер делает это, раскручивая несколько потоков фоновой выборки параллельно (сокращая общее время загрузки) и отображая фрагменты карты по мере их поступления (создавая иллюзию более высокой отзывчивости).

Вы можете лучше почувствовать это, установив Firebug на Firefox, а затем активируйте его при загрузке сложной страницы. Он покажет вам график того, сколько времени занимает выборка каждого компонента страницы, и это показывает параллелизм.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...