Загрузка нескольких предметов в упаковке - PullRequest
0 голосов
/ 28 ноября 2009

Мне нужно, чтобы пользователи могли загружать несколько изображений за один раз. Эта загрузка будет включать в себя файл sql и изображения. Как только загрузка завершится, будет выполнен sql, вставив текст в базу данных sqlite. Этот текст будет включать ссылки на загружаемые изображения. Текст и изображения отображаются в UIWebView.

Каков наилучший способ загрузки всего за одну загрузку? Я думал об использовании пакета, так как он может быть загружен во время выполнения, но не уверен в каких-либо ограничениях / ограничениях в этом сценарии. Я протестировал помещение пакета в папку «Документы», а затем доступ к ресурсам внутри него. Кажется, это хорошо работает в простом тесте.

1 Ответ

0 голосов
/ 28 ноября 2009

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

Предполагая, что приложение имеет пользовательский интерфейс для выбора элементов, которые необходимо перенести, оно может затем запросить все элементы на сервер, а затем сервер может отправить все элементы через одно соединение с определенным вами разделением, так что Приложение iPhone может разделить поток обратно на отдельные файлы.

Или другой вариант: клиент может просто выполнять отдельные HTTP-запросы для разных файлов, используя довольно простое использование NSURLConnection .

Первое звучит как попытка оптимизировать второе. Вы уже проверяли и проверяли, что последний слишком медленный / неэффективный? Это определенно сложнее в реализации.

Существует проблема задержки с несколькими HTTP-соединениями, которые вы запускаете в последовательности, однако, возможно, вы можете уменьшить ее, запустив несколько подключений для загрузки параллельно - например, через NSOperationQueue с лимитом 2 до 5 одновременных операций загрузки.

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