欢迎来到论文网! 识人者智,自知者明,通过生日认识自己! 生日公历:
网站地图 | Tags标签 | RSS
论文网 论文网8200余万篇毕业论文、各种论文格式和论文范文以及9千多种期刊杂志的论文征稿及论文投稿信息,是论文写作、论文投稿和论文发表的论文参考网站,也是科研人员论文检测和发表论文的理想平台。lunwenf@yeah.net。
您当前的位置:首页 > 科技论文 > 计算机论文

基于ajax的IETM动态目录树的设计与实现

时间:2011-04-24  作者:秩名
varxmlNodes=req.responseXML.firstChild;//处理回传数据

LoadDemandNodes(xmlNodes,node); } }

xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');

xmlhttp.send('nodePath='+ nodePath);//传送待展开节点的路径

3.2.2 服务器端处理数据服务器端调用存储过程从数据库中取出出版物模块,并根据客户端传来的待展开节点的路径对出版物模块进行过滤,取出子节点的数据,组织成特定格式的XML文档后返回到客户端。

为了表示目录树中的节点,在服务器端创建xml元素entry,包含三个属性,见表1。同时,将出版物模块中的元素pmentry和dmentry都转换为entry元素,并通过Response.Write将数据返回。

表1 服务器端entry元素的属性

属性 说明
name 节点显示的文本。
children true:父节点;false:叶子节点。
url 该节点所链接数据模块的DMC码。只有叶子节点有。

服务器端数据处理的代码如下:

privatevoid StreamNodeData(XmlNode node) {

this.Response.ContentType= 'text/xml';

StringBuilder sb = new StringBuilder();

sb.Append('<entries>');

foreach (XmlNode child innode.ChildNodes) {

if (child.Name == 'pmentry') //如果是pmentry,则entry的属性children为true,表示父节点。

sb.AppendFormat('<entryname='{0}' children='{1}' />',child.Attributes['title'].Value, 'true');

else //如果是dmentry,则entry的属性children为false,表示叶子节点,同时将该数据模块的dmc值赋予属性url。

sb.AppendFormat('<entry name='{0}' children='{1}'url='{2}'/>', child.Attributes['title'].Value,'false', child.Attributes['dmc'].Value);

}

sb.Append('</entries>');

this.Response.Write(sb.ToString());

this.Response.Flush();

this.Response.Close();

}

3.2.3 客户端更新HTML DOM客户端通过xmlhttp.responseXML接受服务器端返回的数据并解析,从而更新HTML页面中相应位置的数据。为了表示父节点,人为加上一个节点显示Loading ...,并将节点闭合,以显示与叶子节点的区别。

客户端实现HTML DOM更新的代码如下:

functionLoadDemandNodes(xmlNodes,node){

for(vari=0;i<xmlNodes.childNodes.length;i++){

varcurrentRecord=xmlNodes.childNodes[i];

varurl=currentRecord.getAttribute('url');

varnewChild=node.addChild(xmlNodes.childNodes[i].getAttribute('name'));//添加子节点

if(newChild!=null&&xmlNodes.childNodes[i].getAttribute('children')=='true'){//如果是父节点,添加一个子节点。

newChild.addChild('Loading...');

newChild.setExpanded(false); }

else{ //如果是叶子节点,设置url属性。

newChild.element.childNodes[2].setAttribute('URL',url) }

}

}

3.3实现结果通过上述方法,我们设计了某型飞机IETM阅读系统,见图5。系统中数千个数据模块的数据是分级动态加载的,页面加载速度快,并且页面的局部刷新实时稳定。

 

 
 

图5 某型飞机IETM阅读系统

4结论本文采用ajax技术设计了某型飞机IETM阅读系统中的动态目录树,实现了数据的异步读取和树形目录实时稳定的局部刷新。实践证明,这种方法设计的目录树具有高效、快速、用户体验好等优点,是一种比较理想的树型目录设计方法。


参考文献
[1]S1000D. International specification fortechnical publications utilizing a common source database(Issue 2.2). ASD&AIA,2005.05
[2]王沛,冯曼菲. 征服Ajax Web2.0开发技术详解. 人民邮电出版社. 2006.06
[3]施伟伟,张蓓. 征服Ajax Web2.0快速入门与项目实践. 人民邮电出版社. 2006.06
[4]冯新,夏靖波,江友谊. 基于Ajax和Smil的交互式电子手册制作方法. 微计算机信息. 2006.22:12-3
[5]安钊,徐宗昌,郭红芬. IETM中XML技术数据的处理方法. 装甲兵工程学院学报. 2006.10
 

 

查看相关论文专题
加入收藏  打印本文
上一篇论文:广播教学软件的屏幕传输设计
下一篇论文:基于ARM嵌入式系统的AES加密算法实现(图文)
科技论文分类
科技小论文 数学建模论文
数学论文 节能减排论文
数学小论文 低碳生活论文
物理论文 建筑工程论文
网站设计论文 农业论文
图书情报 环境保护论文
计算机论文 化学论文
机电一体化论文 生物论文
网络安全论文 机械论文
水利论文 地质论文
交通论文
相关计算机论文
最新计算机论文
读者推荐的计算机论文