主题:  XML Tree (分层加载数据)

5D荣誉斑竹

职务:普通成员
等级:2
金币:10.0
发贴:622
注册:2001/10/21 13:06:17
#12003/5/26 12:46:34
利用xml的树形菜单大体有两种方式,

1是分层加载节点的
优点,节省资源,减轻服务器压力,和客户端的解析时间。
当菜单数据量很大的时候,这种方式比较适合。xml数据是线性的,容易生成。
缺点 ,展开节点时候,需要再请求服务器读取此层节点下面的字节点。
2是一次性加载节点的
优点,加载后操作顺畅;数据库中的结构全部表现在客户端,有利于客
户端脚本对数据的深层次分析。
缺点,当有大批数据时候,加载速度会比较慢。xml数据是递归的,编码复杂。

今天大体讲解一下第一种xml树形菜单 ---- 分层加载的树形结构。

在数据库中,最为常见的树形结构的存储方式是把所有的节点放在一张表中,

每个记录有一个parentId(父亲节点ID),

得到某个节点的所有子节点 : select * from [table] where parentId = ID

因为我们的xml中每个节点上必须有一个nodeId属性,在数据库中也就是他的ID。

另外我们还要知道某个节点是不是叶子,以通知解析程序这个节电是否具备展开的能力。

所以我们的xml如下:


	
	
	
	
	
	
	



[---演示页面---]

[---下 载---]

编辑历史:[这消息被starsjz编辑过(编辑时间2003-05-26 12:47:03)]
[这消息被starsjz编辑过(编辑时间2003-05-26 13:18:41)]
[这消息被starsjz编辑过(编辑时间2003-05-26 13:31:24)]
[这消息被starsjz编辑过(编辑时间2003-05-26 13:37:25)]
[这消息被starsjz编辑过(编辑时间2003-05-26 13:42:56)]
[这消息被starsjz编辑过(编辑时间2003-05-26 13:43:49)]
[这消息被starsjz编辑过(编辑时间2003-05-26 14:20:24)]
[这消息被starsjz编辑过(编辑时间2003-05-26 14:22:58)]


=ridincal=

职务:管理员
等级:7
金币:20.0
发贴:5886
注册:2004/1/13 11:47:04
#22003/5/26 14:07:40
好,置顶了。

不过我的IE5一看演示就自动关闭了



5D荣誉斑竹

职务:普通成员
等级:2
金币:10.0
发贴:622
注册:2001/10/21 13:06:17
#32003/5/26 14:19:47
to ridincal, 是不是点[展开]的时候ie自动关闭?

如果是因为这个原因,那可能是ie5对setInterVal支持的不够好。以前我也碰到过这个问题,不过是在win98的IE5才会出问题。

不过,我也是ie5,一定是你的ie有鬼,

这个xml分层加载的树形菜单没有用到xslt,是用js直接摆弄xmldom生成的

如果仅仅就树形菜单而言,这样的做法可能会比较直截了当,速度快,效率高,

但是不利于切换展示效果。



我佛山人

职务:版主
等级:4
金币:16.0
发贴:2269
注册:2002/8/7 15:09:27
#42003/5/26 15:23:26
做得不错,不过nodePosition="node"的节点在点击时应该是展开和收缩子节点吧?



{ 在指尖上绽放的花朵 }

职务:普通成员
等级:5
金币:14.0
发贴:3209
注册:2002/7/25 21:24:11
#52003/5/26 18:07:34
不是很懂…… 跟个帖子沾沾前辈的光~~

努力研究中~~



5D荣誉斑竹

职务:普通成员
等级:2
金币:10.0
发贴:622
注册:2001/10/21 13:06:17
#62003/5/26 21:17:30
应该指出的是,程序中有两点不足或者BUG

一个是在展开一个节点的时候没有对该结点是否已经加载过进行判断,影响程序效率。一个是,当一个接点展开时候的动态效果有BUG。



iop9090

职务:普通成员
等级:1
金币:0.0
发贴:3
注册:2003/5/27 13:25:25
#72003/5/27 13:43:10
石头原来在这里是老大啊。。。。
敬佩。。。。



loveyuki

职务:普通成员
等级:1
金币:0.0
发贴:37
注册:2002/8/22 16:02:49
#82003/5/28 17:58:06
那个位老大能帮我找一个像微软新闻组左边那样的菜单吗?



5D荣誉斑竹

职务:普通成员
等级:2
金币:10.0
发贴:622
注册:2001/10/21 13:06:17

文远

职务:普通成员
等级:5
金币:1.0
发贴:2441
注册:2003/3/14 14:45:04
#102003/5/30 10:16:16
XML 偶不是很懂 但是偶喜欢