При загрузке нескольких изображений из сетевых запросов следует ли возвращать данные изображения или ссылку на изображение?

0

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

В настоящее время я отправляю бит blobs и конструирую его в jpeg, однажды загруженный в устройство, но я волнуюсь, что это интенсивно и на устройстве, и на сервере. Поэтому я подумывал о том, чтобы отправить ссылку на картинку и асинхронно загружать каждую картинку, но я не знаю, какие последствия у нее будут. Особенно, учитывая, что в настоящее время я использую дешевый общий хостинг PHP/MySQL для бэкэнд.

Я ищу список плюсов и минусов для отправки необработанных данных изображения через JSON по ссылке на это изображение. Приветствуются любые другие варианты быстрого и эффективного заполнения изображения несколькими сетевыми изображениями.

  • 0
    Примерно, насколько большие эти картины?
  • 0
    В настоящее время около 200 КБ каждый, но я собираюсь изменить макет, и они будут около 500 КБ или около того.
Показать ещё 1 комментарий
Теги:

2 ответа

0
Лучший ответ

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

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

Мое решение до сих пор заключается в возврате 30 (количество ячеек таблицы, которые я загружаю за один раз) объекты JSON, каждый из которых имеет поле "Image_URL":"..." и помещает их в словарь. Затем в cellForRowAtIndexPath: я проверяю, уже ли кэшировано изображение для этой ячейки, а если нет, я делаю запрос на это изображение и обновляю cell.image в cell.image сети.

Это довольно просто сделать самостоятельно, но SDWebImage кажется довольно хорошей библиотекой для обработки угловых случаев, кеширования и других вещей, которые не рассматриваются в базовой реализации. Следует отметить, что AFNetworking также включает в себя функции для асинхронной загрузки изображений.

1

Я думаю, что разница заключается в следующем:

1- пользователь загрузит: (link + image> image) больше потока данных.

2-, если изображение находится на другом сервере → может быть медленнее, чем ваш сервер, или быстрее → влияет на скорость загрузки изображения, предоставляемую пользователю, и сводит к минимуму размер передаваемых данных между вашим сервером и клиентом.

3-, если изображение находится на другом сервере → вы гарантируете, что он будет там, когда ваш сайт будет готов?

4- загрузка данных с использованием ajax уже является асинхронным методом, и вам не нужно беспокоиться о другом сервере, если вы используете его. хорошо, если ваш сервер не настолько медленный, как черт, вам следует подумать о том, чтобы использовать другой сервер для больших изображений, поскольку синхронизация не будет вашей главной проблемой, так как это загрузка, которую вы применяете на своем сервере.

если мне придут другие вопросы, я отправлю их здесь.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню