Малые вызовы API, обрабатываемые на сервере, по сравнению с одной большой загрузкой данных, хранящейся в памяти - PullRequest
3 голосов
/ 11 апреля 2019

ВОПРОС О ДИЗАЙНЕ: У меня есть приложение SPA Angular 7, и у меня есть достаточное количество данных, которые необходимо обработать для каждого ввода пользователя, чтобы превратить его в график. например: если пользователь включает январь месяц, на графике отображаются данные только за январь ... тогда, если пользователь включает январь и февраль, график снова обновляется. Есть и другие фильтры, которые пользователь может отключить и включить. Каков наилучший способ реализации этой функции?

1) Перетащите все необходимые данные на клиент и сохраните в памяти локально с различными месяцами и свойствами, которые клиент выключает и включает

2) Множество меньших запросов к API и счетчик загрузки на графике, обработка, выполненная в API, чтобы вернуться к клиенту относительно отформатированной

3) Что-то вроде Redis или memcache для хранения начальной загрузки данных в компонент init

Я слегка склоняюсь к меньшим вызовам API, потому что я предпочел бы работать со строго типизированным языком (в данном случае C #)

1 Ответ

3 голосов
/ 11 апреля 2019

Как и во всех вопросах оптимизации, это зависит.Здесь нет правильного и неправильного ответа, вам придется проанализировать свои варианты использования, чтобы решить, каковы компромиссы.

Некоторые вещи, которые следует иметь в виду: небольшие вызовы более кешируемы, и на них стоит положитьсяна заголовках HTTP-контроля кэша, чтобы поддерживать чистоту вашего приложения.Это имеет недостаток в классическом временном / пространственном компромиссе в том, что чем тоньше ваш кеш, тем больше вычислительной мощности потребуется для его сборки в больший вывод.

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

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