Отрисовка больших данных в древовидной структуре с динамической подгрузкой при скролле

Есть данные в древовидной структуре (около 100-150 тыс объектов в массиве, выгружаю полностью и храню в indexeddb). Рисуются через виртуал скролл с возможностью скрытия/открытия ветвей и чекбоксами. Реализовал с помощью построения карты дерева, где в каждом узле есть ссылки на всех потомков (чтобы каждый раз не обходить рекурсивно) На 10-15 тыс полёт нормальный но думаю что от 50+ тыс будет тормозить. Хочу встроить динамическую подгрузку данных в виртуал скролл но с деревом это сделать не просто. Если кто то реализовывал нечто подобное, прошу намекнуть в какую сторону думать т.к. сейчас в голове несколько вариантов и я не знаю по какому идти. Сейчас думаю забирать например по 1000 объектов и вычислять дельту при достижении которой будет подгрузка с бека, Но что делать при скрытии узла? Думаю держать в каждой ноде некий children_count и увеличивать offset на него.

С другой стороны, 150 тыс объектов не так уж и много и можно впринципе с ними работать отключив реактивность и заоптимизировать алгоритмы, навесить web-worker'ов и т.п.


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