纯作备忘
除去本blog上篇转载的关于gridpanel加载数据慢的原因,这两天碰到另一种导致grid速度加载慢的问题。当数据只有10条以内,基本没感觉,但数据每增加几条,渲染时所需要的时间能明显感觉增加。经过一翻挣扎,原来在store的load事件中有两个金额字段的计算。去除后,速度恢复正常。
------------传说中的分割线------------
若要不分页显示大数据量grid,应尽量配合Ext.ux.grid.BufferView使用。数据越量越多,对比不使用BufferView的grid加载速度差异就越明显。
若需要在grid中做计算,在renderer中实现,效果跟没有计算差不多(200条数据以内测试正常)
在renderer中计算,效果应该会好很多,如:
教训:
[b]1.尽量少在gridPanel中计算数据,尤其是store的load事件中,严重影响渲染速度[/b]
2.尽量减少对store的写操作,尤其是在数据加载的时候(说白了还是第1点。废话了。)
除去本blog上篇转载的关于gridpanel加载数据慢的原因,这两天碰到另一种导致grid速度加载慢的问题。当数据只有10条以内,基本没感觉,但数据每增加几条,渲染时所需要的时间能明显感觉增加。经过一翻挣扎,原来在store的load事件中有两个金额字段的计算。去除后,速度恢复正常。
------------传说中的分割线------------
若要不分页显示大数据量grid,应尽量配合Ext.ux.grid.BufferView使用。数据越量越多,对比不使用BufferView的grid加载速度差异就越明显。
若需要在grid中做计算,在renderer中实现,效果跟没有计算差不多(200条数据以内测试正常)
在renderer中计算,效果应该会好很多,如:
{//这种虚拟字段不需要设置dataIndex
header: "金额",
width: 100,
renderer: function(data, cell, record, rowIndex, columnIndex, store){
return Ext.util.Format.number((record.get("buyerQty") * record.get("buyerPrice")), "0.00");
}
},教训:
[b]1.尽量少在gridPanel中计算数据,尤其是store的load事件中,严重影响渲染速度[/b]
2.尽量减少对store的写操作,尤其是在数据加载的时候(说白了还是第1点。废话了。)
本文探讨了ExtJS GridPanel加载速度慢的问题及解决方案。通过避免在Store的Load事件中进行复杂计算,可以显著提高渲染速度。此外,对于大量数据的显示,推荐使用Ext.ux.grid.BufferView来优化性能。
1万+

被折叠的 条评论
为什么被折叠?



