@swimlane/ngx-datatable виртуальная прокрутка работает только с кэшированными строками
@swimlane/ngx-datatable виртуальная прокрутка работает только с кэшированными строками. Кэшированные строки хранятся в массиве. В моем случае число этих строк может превышать 10 миллионов. Как не кэшировать эти строки и использовать виртуальную прокрутку?
Воспроизведение проблемы:
1) Пример текущего поведения виртуальной прокрутки без кэшированных строк: http://prntscr.com/kw9q51
2) Репо: https://github.com/DmitriyIvanko/ngx-datatable-example/blob/master/src/app/app.component.ts
0 ответов
Мое решение для взлома - имитация кэшированных строк: например, пользовательский запрос занимает: 20 строк, пропуск: 50 строк, всего строк: 100; Создайте массив 'undefined' (длиной 100) и замените 20 строк, начиная с 50-й строки;
const totalRow = 100;
const skip = 50;
const take = 20;
const serverRow = [{...}] // array of row, with length = 20;
const resultList = new Array(totalRow).fill(undefined);
resultList.splice(skip, serverRow.length, ...serverRow);
Я проверяю это решение с 10 миллионами строк, и оно работает очень быстро; Может быть, это кому-нибудь поможет.