Tuesday, November 23, 2021

Ускорить загрузку данных

Вступление

В качестве backend используется firebase. Ранее было принято решение хранить изображение логотипа сообщества в базе в формате base64. Решение не очень хорошее: объем передаваемых данных по сети большой - более 60 КБ.

Необходимо хранить в базе ссылку на изображение, а не данные целиком.

Как работает сейчас?

Сайт и мобильное приложение используют поле "logo" из коллекции "communities"

Что надо сделать?

  1. Разместить логотипы на внешнем ресурсе и подготовить url;
  2. Создать поле "logo_url" коллекции "communities" и заполнить его значениями из п.1;
  3. На сайте реализовать использование "logo_url" для отображения лого сообщества;
  4. В мобильном приложении реализовать использование "logo_url" для отображения лого сообщества;
  5. Обновить сайт;
  6. Выпустить обновление мобильного приложения;
  7. Удалить поле "logo" коллекции "communities";
  8. Протестировать скорость загрузки.

У пользователей со старой версией приложения логотип не будет отображаться. Остается только надеятся что все пользователи регулярно и автоматически обновляют свои приложения.

Результат

Вместо результата приведен опрос:

Время загрузки сократилось на 50-75% и теперь составляет примерно 0,5-2 секунды. Когда софт не заметен для глаза — это хорошо.