Я работаю над платформой управления документами.Пользователи могут загружать документы в веб-приложение, редактировать свои метаданные и выполнять задачи (например, отправлять документы своим получателям по электронной почте).
Наши пользователи должны иметь возможность выбирать любое количество документовиз результата поиска.Они могут выбирать документы по одному или нажимать кнопку «Выбрать все».Мы могли бы говорить о тысячах или десятках тысяч документов, которые нужно выбрать.
При поиске документов мы отображаем постраничные результаты в таблице Datatables.Это означает, что при выборе документов для задачи нам нужно хранить набор выборок где-то, поскольку в Datatable есть сведения только о строках, которые отображаются в данный момент.В настоящее время мы храним GUIDS документов в скрытом элементе страницы.
Этого оказывается недостаточно, поскольку мы сталкиваемся с проблемами при таком подходе: - При выборе всех документов может возникнуть проблема параллелизма.Что, если будет загружено больше документов, соответствующих текущим критериям поиска, между временем, когда пользователь выполняет поиск и планирует задачу?Это может привести к непреднамеренной обработке документов.- Если вы отправляете все GUID клиенту, когда он выбирает «Выбрать все» (чтобы избежать проблемы параллелизма, описанной выше), список может быть слишком большим для отправки в виде объекта JSON.- Может также произойти обратное: что, если список на стороне клиента слишком велик для отправки на сервер?
Мой вопрос: как лучше подходить к хранению и обработке больших наборов выбора пользователя?