jQuery MiniUI

标题: Tree 或 TreeGrid 问题 [打印本页]

作者: wslfriend    时间: 2012-12-26 09:54:38     标题: Tree 或 TreeGrid 问题

采用Tree 控件之后,异步加载, 当某个节点下有3000条记录需要展现时,会导致Tree 卡死。

请问有没有办法解决?

我在其他树控件中,采用的方式是记录超过若干条(比如100)之后,就采用 settimeout 方式,逐步递增渲染,每2秒递增100条。

作者: niko    时间: 2012-12-26 10:19:39

Tree大数据量示例:http://www.miniui.com/BigTest/10000-tree.html
你将3000个节点,分一下级,这样不展开的节点,默认不生成,就可以达到优化的目的。
作者: wslfriend    时间: 2012-12-26 10:52:59

分级当然可以。
但如果无法分级呢? 3000条记录是历史问题,分级只是取巧回避而已。
作者: niko    时间: 2012-12-26 13:27:14

将3000条分5的子节点,如果一开始都是折叠的,开销是:5个节点的渲染。
当你展开一个节点时,才动态绘制600个节点,这样达到优化的目的。

Tree大数据量示例:http://www.miniui.com/BigTest/10000-tree.html
这个例子有10000个节点,为什么能那么快?就是因为折叠的节点,其实是不显示在界面上的,只有当展开后,才动态显示的。
作者: wslfriend    时间: 2012-12-26 13:55:44

niko 发表于 2012-12-26 13:27
将3000条分5的子节点,如果一开始都是折叠的,开销是:5个节点的渲染。
当你展开一个节点时,才动态绘制600 ...


这咱当然懂咯。

玩树叶玩了N年了,当然一直侧重后台算法。
可现在就是有这么个3000节点一口气展现的需求咋办?   3000条记录是EXCEL导入的,让客户去分类人家才不干呢,人家是爷啊。。。

而且,3000也没想象中那么吓人吧。
以前我就用分时段加载的方式摆平了客户的。 可换了MINIUI 当场惨死。
作者: niko    时间: 2012-12-26 14:14:07

如果你这3000个节点没有分级,那跟表格没什么区别。
那你可以参考这个例子:
http://www.miniui.com/BigTest/10000-datagrid.html
支持10000行的表格示例,毫秒级显示。
作者: wslfriend    时间: 2012-12-27 08:53:57

niko 发表于 2012-12-26 14:14
如果你这3000个节点没有分级,那跟表格没什么区别。
那你可以参考这个例子:
http://www.miniui.com/BigTes ...

谢谢niko。
不过这种这种头重脚轻的树,在我们这普遍存在,不太可能全用Grid替换的。

谢谢了。。。
作者: njzy    时间: 2012-12-28 14:18:48

wslfriend 发表于 2012-12-27 08:53
谢谢niko。
不过这种这种头重脚轻的树,在我们这普遍存在,不太可能全用Grid替换的。

mini的tree确实效率上有点不如人意。
作者: niko    时间: 2013-1-11 13:09:51

年后将发布重构版本,将tree从grid继承,获取grid的单元格编辑,和大数据显示能力:
http://www.miniui.com/BigTest/10000-datagrid.html
作者: njzy    时间: 2013-1-15 12:55:38

niko 发表于 2013-1-11 13:09
年后将发布重构版本,将tree从grid继承,获取grid的单元格编辑,和大数据显示能力:
http://www.miniui.com ...

但愿用法别有太大改变。




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2