У нас есть требование, согласно которому нам нужно загрузить около 4000 записей в две отдельные сетки дерева редактора и выделить различия в каждой записи после проведения сравнения с использованием значений из определенного столбца в каждом дереве. Все хорошо с ограниченным количеством записей, но когда мы получаем до 4000 записей или больше, у нас возникают огромные проблемы с данными. Сетка дерева занимает около 10 минут для рендеринга, поскольку она включает в себя расширение всех узлов, вычисления для построения родительского дочернего отношения и затем выделение.
Одним из решений, которое я рассмотрел, было использование аналогичного подхода к Live Grid, но для логики выделения нам нужны все записи, поскольку третья запись в таблице «A» может соответствовать 115-й записи в таблице «B». предыдущий выбор, когда он приносит следующий набор записей.
Учитывая вышесказанное, что было бы наилучшим способом достижения этого? Могу ли я просто добавлять новые записи в магазин при прокрутке вниз? Я думаю, что это можно сделать путем отслеживания положения прокрутки без использования Live Grid, но я не уверен, как этого добиться. Я даже не уверен, что это правильный подход. Может кто-нибудь предоставить мне пример кода для добавления элементов в хранилище, когда пользователь достигает конца вертикальной прокрутки в EditorTreeGrid, или предложить лучший способ добиться этого? Моя попытка добавить слушателя прокрутки и слушателя как-то не срабатывает.
Кроме того, Live Grid использует List Store, тогда как я использую EditorTreeGrid. Как мне эффективно заполнить его в магазине дерева? Раньше я делал getAllModels и заполнял их в TreeStore. Это правильный способ сделать это?