【发布时间】:2016-03-07 00:16:45
【问题描述】:
我在使用 Aurelia 渲染大型数据表时遇到性能问题。
即使在中等大小的表格 (20x20) 的情况下,Chrome 的时间也不会低于 200 毫秒,MS Edge 需要约 800 毫秒,而 IE11 需要约 2 秒。如果您想添加(虚拟)滚动,那么 200 毫秒也是一个问题。处理时间随着每个表格单元格的绑定数量而增加。我已经组合了一个 (example),它绑定了“css”、“class”,当然还有单元格内容。
<table class="table">
<tbody>
<tr repeat.for="row of rows">
<td repeat.for="column of columns" css.bind="getCellStyle(column, $parent.$first)" class.bind="getCellClasses(column, row)">
<template replaceable part="cell-template">
<span>${getCellText(column, row)}</span>
</template>
</td>
</tr>
</tbody>
</table>
有什么想法可以提高性能吗?
根据最初的建议,我试图避免嵌套重复,但在我的情况下这是不可能的,因为列和行都是动态的。
【问题讨论】:
-
问题是关于渲染可见表格单元格的优化。如果有很多不可见的行,Aurelia ui-virtualization 会有所帮助。
标签: javascript performance aurelia