作者:王力猛 (wallimn)
电邮:
wallimn@sohu.com
博客:
http://wallimn.bokee.com
http://blog.csdn.net/wallimn
时间:2006-11-21
/***********本人原创,欢迎转载,转载请保留本人信息*************/
这两天整B/S的东西要在网页上用树来展示层次结构,去网上找了找,找到三个:xtree、mztreeview10(梅花雪树)以及dhtmlxTree.花了一些时间对这三个东西进行了一下测试分析。
1.dhtmxTree
优点:功能非常强,尤其应对树是动态变化的情况,提供了大量的API:比如添加节点、修改节点标题样式及图标、CheckBox功能、节点的查找定位以及拖动,树数据是从特定格式的XML文件(或字符串)中装载。
缺点:正因为功能非常强,所以效率有些低,当节点数达1700多的时候,IE会出“装载时间过长,是否继续等待”的提示,选继续装载,可以装载完成,但节点的展开非常的慢。
2.mztreeview1.0
优点:这个树还是很有特点的,它的数据是一次性加载、异步显示的,也没有对cookie进行任何的操作,效率很高,据官方称:MzTreeView 1.0 在节点量三万至五万以上非常具有优势。
缺点:这个树好象不是设计用来满足节点动态变化这个需求的,应该主要设计用来展示结构层次定死了的树。树的加载是通过调用document.write()来实现的。
3.xtree
这个树跟2有些相似,但多了一个在cookie中保存状态的功能,刷新、前进又后退回去,不会改变树的节点展开、关闭形态,也就说树会保持外观形态。2和3的效率我没有进行测试,但分析应该是2强于3吧。xtree我有同事用,说效率还可以,比dtree强很多。
结论:对要进行较多的操作,树是动态变化的,而节点数又不太多的时候,dhtmxTree是不二的选择;而树是静态不变的,不需要在COOKIE中保存状态,那就用mztreeview了,mztreeview应对节点多的静态树有相当大的优势;xtree是三个产品中唯一使用到cookie的,这是它的显著特点,有这个需求,当然选它了。
我对dhtmlxTree进行了一点小改造,就是加了个在选中节点前添加节点的功能(原来只有添加为后面的同级节点或子节点的功能),这个应该是树节点添加操作中常见的功能,使用dhtmlxTree又需要这个功能的朋友请与我联系。