Frontend и Backend организация данных

интересует такой вопрос. например на главной странице сайта отображается 1000 товаров со своими ценами. схема такая клиент заходит на site.com - посылается апи запрос на бекенд и от туда подтягиваются данные из базы. и так если заходят одновременно 100 клиентов , каждый раз отправляются запросы на бекенд, а данные почти всегда одни. и лишь скажем 10 раз в день что то в этих данные меняется. внимание вопрос, можно ли и сделать так чтобы бекенд лишь при изменении данных отправлял их на фронтед и там уже была мгновенная отрисовка их. пишу первый проект на node/vue. может подскажете литературу которая поможет правильно проектировать проекты.


Ответы (1 шт):

Автор решения: Roman Kozin

Один из простых вариантов - это кеширование данных.
К примеру, есть у Вас n-товаров.
И для каждого своего товара существует кеш (product_{n}_cat_{cat}).
А для некой группы товаров, иметь кеш products_group_{m}, где m - ключ для группы товаров.
Соответственно, в этом кеше будут ключи кешей к тем продуктам, которые у Вас есть.
Это самый простой вариан.

Вы также можете использовать ORM, для упрощения жизни и написать свою обёртку для запросов и отдачи результатов. Но это уже совсем другой уровень.

Вы можете, конечно, перебирать все возможные варианты для кеширования даных, но это бинарное дерево будет очень большим. С комплексностью алгоритма не подскажу, но расти это всё будет в арифметической прогрессии.
Ибо, множество фильтров будет внутри комбинированным и будет очень затратно по ресурсах кешировать это всё. Даже на уровне сервера в background'е.

Рекомендуется, также, использовать несколько уровней кеша. Но с этим уже надо быть осторожней и внимательней, чтобы не запутаться, на каком уровне кеша может возникнуть проблема.

→ Ссылка