Сохранить значки приложений как внутренние ресурсы или предоставить их из удаленного хранилища? - PullRequest
0 голосов
/ 25 октября 2018

Я занимаюсь разработкой приложения для списка покупок Angular 7, PWA с CLI Schematics (@ angular / pwa).

Приложение предоставит значки покупок, сгруппированные по типам предметов внутри аккордеонов (от 10 до20 на категорию, от 2 КБ до 6 КБ каждая).Приложение PWA будет использоваться только мобильными телефонами (только для контекста, поскольку это не имеет значения).

Поскольку значки не меняются, я не уверен между следующими подходами:

  1. Предоставить все значки как внутренние активы
  2. Хранить изображения удаленно

(я использую Firebase в качестве базы данных, поэтому яЯ думаю о Firebase Storage)

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

В настоящий момент я ориентируюсь на решение № 2, используя стратегию отложенной загрузки PWA,но мне было бы интересно узнать, могут ли быть лучшие подходы для этого сценария.

1 Ответ

0 голосов
/ 25 октября 2018

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

Если бы не это, я бы лучше сохранил их как обычные активы, а не как элементы firedb, а затем установил надлежащие элементы управления кэшем.Фактически, элементы управления кэшем, вероятно, должны быть установлены правильно, независимо от того, используете ли вы сервисный работник или нет.

Итак, мой TL: DR;Ответ будет таким:

  • [*] хранить как статические активы в CDN с надлежащими элементами управления кэшем
  • [] использовать сервисного работника, чтобы они были доступны еще быстрее

(*) => обязательно

Это решенная проблема, и, вероятно, не стоит стучать головой о стену, по крайней мере, ненадолго.Используйте рекомендованный подход, либо работника сервиса, либо нет, не помещайте статические активы в базу данных.

Кроме того, кое-что для тестирования, но вы можете сделать это, чтобы: - превратить их в SVG(сжать намного лучше) - отправить их как спрайты

...