Задать вопрос

Как можно оптимизировать загрузку данных?

Есть готовое API, я подключаюсь, получаю сессию и запрашиваю список товаров (помимо этого есть отдельные запросы на каталог, цены, остатки и т.д). Данных очень много, и постоянные запросы для обновления будет загружать процессор и увеличивать время ожидания.

Как организовать хранение данных, чтоб во время работы приложения можно было незаметно от пользователя подгружать обновлённые данные? Запуск приложения я начинаю с запроса на аутентификацию и далее получение списка товаров, пока запрос идёт, страница пустая. Можно сделать лоадинг и подготовить моки, чтоб была видимость работы, но где хранить стартовые данные и загружаемые в процессе данные?

Создать бд? звучит вроде разумно: берём стартовые данные на момент запуска (ранее загруженные товары), обновляем данные после выполнение запроса.
Делать запросы частыми? как их делать? ставить лимит записей?

Какие технологии нужно использовать для решения задачи?
  • Вопрос задан
  • 240 просмотров
Подписаться 1 Простой 4 комментария
Помогут разобраться в теме Все курсы
  • Нетология
    1C-программист: расширенный курс
    18 месяцев
    Далее
  • Академия Eduson
    Python-разработчик
    9 месяцев
    Далее
  • Skillbox
    Профессия 1С-программист
    8 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
VoidVolker
@VoidVolker
Dark side eye. А у нас печеньки! А у вас?
Как можно оптимизировать

Оптимизировать по каким именно критериям и для каких целей? Вот на эти вопросы вам сначала надо ответить. А в целом — сделать нагрузочное тестирование, провести исследование, найти бутылочное горлышко и другие проблемные места и решать конкретные проблемы в конкретном месте.

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

Будет или делает? Т.е., это ваше предположение или результат ваших измерений?

Как организовать хранение данных, чтоб во время работы приложения можно было незаметно от пользователя подгружать обновлённые данные?

Разработать и реализовать соответствующий алгоритм. Например использовать кэширование.

Можно сделать лоадинг и подготовить моки, чтоб была видимость работы, но где хранить стартовые данные и загружаемые в процессе данные?

Можно. Почему нет-то? Никто и не запрещает вам. Временные данные обычно хранятся в кэше.

Создать бд?

Да, обычно так и делается: создаётся БД и в ней хранятся все нужные данные.

Делать запросы частыми? как их делать? ставить лимит записей?

Зависит от данных, самих запросов, а так же других факторов. Как делать — провести тестирование, исследовать поведение системы и уже после менять логику под требования.

Какие технологии нужно использовать для решения задачи?

Те, которые знаете и умеете применять или хотите изучить.

Приведу пример из реальной практики: приложение-каталог на браузерном движке на отдельном ПК, объём каталога около десятка-полутора тысяч позиций, по каждой позиции 5-10 картинок высокого разрешения, скорость скачивания картинок с сервера ограниченная, общий объём данных несколько гигабайт (может около десятка). Задача: сделать работу каталога быстрой и комфортной для пользователя. Т.е., чтобы можно было открыть любую позицию и сразу увидеть картинку или полистать галерею со всеми картинками. Решение: локальный файловый кэш с ежедневным обновлением по расписанию и динамическими обновлениям в реальном времени всех изображений (в том числе превью и галереи), а так же кэш самого каталога с намного более частым обновлением в реальном времени. Результат: мгновенная работа всего каталога,которая не зависит от объёма каталога и на обычном мини-ПК типа офисной печатной машинки, при том что это браузер, а так же наличие тяжёлой 3D анимации со всякими дизайнерскими фантазиями. А так же очень быстрый поиск с отображением результата.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы