@ swimlane / ngx-datatable виртуальная прокрутка работает только с кэшированными строками - PullRequest
0 голосов
/ 19 сентября 2018

@ swimlane / ngx-datatable виртуальная прокрутка работает только с кэшированными строками.Кэшированные строки хранятся в массиве.В моем случае количество этих строк может превышать 10 миллионов.Как не кэшировать эти строки и использовать виртуальную прокрутку?

Воспроизведение проблемы:

1) Пример текущего поведения виртуальной прокрутки без кэшированных строк: http://prntscr.com/kw9q51

2) Репо: https://github.com/DmitriyIvanko/ngx-datatable-example/blob/master/src/app/app.component.ts

1 Ответ

0 голосов
/ 21 февраля 2019

Мое решение для взлома - имитация кэшированных строк: например, пользовательский запрос занимает: 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 миллионами строк, и оно работает очень быстро;Может быть, это кому-нибудь поможет.

...