@ swimlane / ngx-datatable虚拟滚动仅适用于缓存的行

时间:2018-09-19 15:02:46

标签: ngx-datatable

@ swimlane / ngx-datatable虚拟滚动仅适用于缓存的行。缓存的行保留在数组中。就我而言,该行的数量可以超过1000万。如何不缓存该行并使用虚拟滚动?

问题的重制:

1)当前行为没有缓存行的虚拟滚动示例:http://prntscr.com/kw9q51

2)回购:https://github.com/DmitriyIvanko/ngx-datatable-example/blob/master/src/app/app.component.ts

1 个答案:

答案 0 :(得分:0)

我的黑客解决方案是模拟缓存的行: 例如,用户请求采用:20行,跳过:50行,总行:100; 创建“未定义”(长度为100)数组,并从第50行开始替换20行;

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);

我检查了1000万行的解决方案,它的确非常快。 也许这会帮助某人。