jQuery MiniUI

 找回密码
 立即注册
查看: 4312|回复: 9
打印 上一主题 下一主题

Tree 或 TreeGrid 问题 [复制链接]

Rank: 4

跳转到指定楼层
楼主
发表于 2012-12-26 09:54:38 |只看该作者 |倒序浏览
采用Tree 控件之后,异步加载, 当某个节点下有3000条记录需要展现时,会导致Tree 卡死。

请问有没有办法解决?

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

Rank: 9Rank: 9Rank: 9

沙发
发表于 2012-12-26 10:19:39 |只看该作者
Tree大数据量示例:http://www.miniui.com/BigTest/10000-tree.html
你将3000个节点,分一下级,这样不展开的节点,默认不生成,就可以达到优化的目的。

Rank: 4

板凳
发表于 2012-12-26 10:52:59 |只看该作者
分级当然可以。
但如果无法分级呢? 3000条记录是历史问题,分级只是取巧回避而已。

Rank: 9Rank: 9Rank: 9

地板
发表于 2012-12-26 13:27:14 |只看该作者
将3000条分5的子节点,如果一开始都是折叠的,开销是:5个节点的渲染。
当你展开一个节点时,才动态绘制600个节点,这样达到优化的目的。

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

Rank: 4

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


这咱当然懂咯。

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

而且,3000也没想象中那么吓人吧。
以前我就用分时段加载的方式摆平了客户的。 可换了MINIUI 当场惨死。

Rank: 9Rank: 9Rank: 9

6#
发表于 2012-12-26 14:14:07 |只看该作者
如果你这3000个节点没有分级,那跟表格没什么区别。
那你可以参考这个例子:
http://www.miniui.com/BigTest/10000-datagrid.html
支持10000行的表格示例,毫秒级显示。

Rank: 4

7#
发表于 2012-12-27 08:53:57 |只看该作者
niko 发表于 2012-12-26 14:14
如果你这3000个节点没有分级,那跟表格没什么区别。
那你可以参考这个例子:
http://www.miniui.com/BigTes ...

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

谢谢了。。。

Rank: 4

8#
发表于 2012-12-28 14:18:48 |只看该作者
wslfriend 发表于 2012-12-27 08:53
谢谢niko。
不过这种这种头重脚轻的树,在我们这普遍存在,不太可能全用Grid替换的。

mini的tree确实效率上有点不如人意。

Rank: 9Rank: 9Rank: 9

9#
发表于 2013-1-11 13:09:51 |只看该作者
年后将发布重构版本,将tree从grid继承,获取grid的单元格编辑,和大数据显示能力:
http://www.miniui.com/BigTest/10000-datagrid.html

Rank: 4

10#
发表于 2013-1-15 12:55:38 |只看该作者
niko 发表于 2013-1-11 13:09
年后将发布重构版本,将tree从grid继承,获取grid的单元格编辑,和大数据显示能力:
http://www.miniui.com ...

但愿用法别有太大改变。

Archiver|普加软件

GMT+8, 2024-11-26 18:31 , Processed in 1.027921 second(s), 9 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部