在尝试水平滚动Kendo UI Angular2网格时,我遇到IE 11缺乏性能。有时列数可能会发生变化。至少我每次都有30列。 IE要么冻结UI超过10秒,要么崩溃。
我的网格版本是0.5.0。这是我的网格设置:
<kendo-grid
[data]="view"
[scrollable]="'virtual'"
[height]="gridHeight"
[pageSize]="pageSize"
[rowHeight]="rowHeight"
[skip]="skip"
[sortable]="{ mode: 'multiple' }"
[sort]="sort"
(sortChange)="sortChange($event)"
(pageChange)="pageChange($event)">
<template ngFor [ngForOf]="columns" let-column>
<kendo-grid-column
field="{{column}}"
[headerStyle]="{'border': 'none', 'font-size': 'medium'}"
[width]="computeWidth(column)"
[style]="{'border': 'none', 'font-size': 'small'}">
<template kendoCellTemplate let-dataItem>
<div>
{{dataItem[column] | truncate : 75 }}
</div>
</template>
</kendo-grid-column>
</template>
</kendo-grid>
编辑:更新网格高达0.6.2,与IE相同甚至Chrome的思维时间超过预期。
示例是here
答案 0 :(得分:1)
使用虚拟滚动时,不要将网格绑定到完整数据(数千行),而只绑定到当前分页数据。这就是使虚拟滚动快速的原因 - 只渲染当前可见的数据。这显示在virtual scrolling example in the documentation。
中np.random.seed(1)
df = pd.DataFrame(np.random.randint(10, size=(10,10)))
df.columns = list('ABCDEFGHIJ')
print (df)
In [293]: %timeit (df.apply(lambda r: df.sum()[r.name]*df.sum(1)[r.index]/df.sum().sum()))
100 loops, best of 3: 14.1 ms per loop
In [294]: %timeit (df.sum(1).to_frame().dot(df.sum().to_frame().T).div(df.sum().sum()))
1000 loops, best of 3: 1.19 ms per loop