LINUX.ORG.RU

Веб страница с большим стейтом. Как оптимизировать обмен?

 , ,


0

2

Всем привет. Прошу совета

Сразу к примеру. Допустим есть система товароучета. За раз на странице показывается 100 товаров, информация о них и остатки. Суммарно допустим это 10 тысяч значений, размером около 200 КБ

Значения меняются относительно динамично, как локально, так и на сервере (а точнее другими пользователями системы). Товары добавляются, удаляются, изменяются их свойства и остатки.

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

Получается эдакий PHP-стайл, где на каждое изменение прилетает новая страница, но теперь со вкусом JSON-а и реакта

Вопрос. Как это дело оптимизировать? В идеале на страницу должны прилетать только изменения относительно некоего предыдущего состояния. Не так идеально - получать полные даные, но обновлять в стейте тольк то, что изменилось (кажется это зовется модным словом reconciliation)

Есть ли устоявшиеся подходы, готовые решения?

Ответ на: комментарий от no-such-file

Ну так объясни ему какие данные ему нужно запрашивать отдельно. Мне то что?)

TDrive ★★★★★
()
Последнее исправление: TDrive (всего исправлений: 2)
Ответ на: комментарий от TDrive

учитывая что он пришел за готовым решением

Нету никакого готового решения чтобы из говна конфетку сделать. Object дело предлагает, нужно переделать в принципе это поделие и гонять ивенты. Т.е. один раз грузится снапшот, а потом синхронизируется ивентами. Получается как-бы репликация базы на клиенте. Всё. А уж как технически это делать, пусть ТС сам кумекает.

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

Ты веришь что ТС сможет запилить реактивную эвент сурс систему с транзакциями с правильной областью видимости и локами с защитой от дедлока?) Как предложил ему обжект)

TDrive ★★★★★
()
Последнее исправление: TDrive (всего исправлений: 1)
Ответ на: комментарий от kijllfatncdaplp

Logux он для разработки инструментов совместной работы. По типу https://miro.com/ и ему подобных. Где ты в реальном времени видишь, что делают другие пользователи, а они видят, что делаешь ты.

У тебя задача намного проще и вообще не требует подобных концепций.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.