@swimlane/ngx-datatable 虚拟滚动仅适用于缓存行
@swimlane/ngx-datatable virtual scroll works only with cached rows
@swimlane/ngx-datatable 虚拟滚动仅适用于缓存行。缓存的行保留在数组中。就我而言,该行的数量可能超过 1000 万。如何不缓存那些行并使用虚拟滚动?
问题重现:
1) 没有缓存行的当前行为虚拟滚动示例:http://prntscr.com/kw9q51
2) 回购:https://github.com/DmitriyIvanko/ngx-datatable-example/blob/master/src/app/app.component.ts
我的 hack 解决方案是模拟缓存行:
例如用户请求取:20 行,跳过:50 行,总行数:100;
创建 'undefined' 的数组(长度为 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 万行检查了这个解决方案,它运行得非常快;
也许这会对某人有所帮助。
@swimlane/ngx-datatable 虚拟滚动仅适用于缓存行。缓存的行保留在数组中。就我而言,该行的数量可能超过 1000 万。如何不缓存那些行并使用虚拟滚动?
问题重现:
1) 没有缓存行的当前行为虚拟滚动示例:http://prntscr.com/kw9q51
2) 回购:https://github.com/DmitriyIvanko/ngx-datatable-example/blob/master/src/app/app.component.ts
我的 hack 解决方案是模拟缓存行: 例如用户请求取:20 行,跳过:50 行,总行数:100; 创建 'undefined' 的数组(长度为 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 万行检查了这个解决方案,它运行得非常快; 也许这会对某人有所帮助。