??xml version="1.0" encoding="utf-8" standalone="yes"?>
报错了,因ؓlucene在FSDirectory里将我的路径lnew File(file.getCanonicalPath());
但奇怪的是file.getCanonicalPath()出来路径不对呀
错误?br />java.io.IOException: D:\eclipse\luc\public\index not a directory
应该是d:\eclipse\workspace\luc\public\index 才对?br />郁闷很久?现在q没办法解决!!!!!!!!!!!!!!!!!!!!!!!!!!
]]>
虽然没找到正主,但还是找C一?/span> Eclipse3.0.x 版本可用的版本,以共来参考?/span>
SQLExplorer
SQLExplorer
可以通过JDBC讉K几乎M一U数据库。同时也支持?span lang="EN-US">Hibernateq样的工兯问数据库。现在的版本?span lang="EN-US">SQLExporer
下栽地址Q?span lang="EN-US">http://sourceforge.net/projects/eclipsesql
是一个很好的
SQL
控制?/span>
,
支持各类L数据库。现在的版本?/span>
JFaceDbc 3.0
下栽地址Q?span lang="EN-US">http://sourceforge.net/projects/jfacedbc
Quantum
Quantum
是一个数据库讉K插g.它当前支持的数据库有:Postgres,MySQL,Adabas,DB2,Oracle与有JDBC驱动的数据库.它可以显C?span lang="EN-US">,视图q提供一个语法可高亮昄?span lang="EN-US">SQL~辑?/span>
com.quantum.feature_
下栽地址Q?span lang="EN-US">http://sourceforge.net/project/showfiles.php?group_id=7746&package_id=57047
使用 Eclipse 自动重构Ҏ的Ҏ与原?/P>
![]() |
U别: 初 David Gallardo, 独立软gN和作?BR> 2003 q?11 ?10 ?/P> Eclipse 提供了一l强大的自动重构QrefactoringQ功能,q些功能I插在其他功能当中,使您能够重命?Java元素Q移动类和包Q从具体的类中创建接口,嵌套的cd成顶U类Q以及从旧方法的代码片断中析取出新的Ҏ。您熟悉?Eclipse 的重构工具之后,掌握了一U提高生产率的好Ҏ。本文综览Eclipse 的重构特性,q过例子阐明了用这些特性的Ҏ与原因?/BLOCKQUOTE> |
1、男人是C会的主体,不管你信或不信。所以男人应该有U责L?BR>
2?5岁之前,误得,爱情通常是假的,或者不是你所惌的那Lz和永远。如果你q了25岁,那么你应该懂得这个道理?BR>
3、吃?成饱最舒服。对待女友最多也请你保持?成?BR>
4?0岁之前请爱惜自己的n体,?0q你扄Q后30q病找你。如果你q了30岁,你自然也会懂得这个道理?BR>
5、事业远比爱情重要。如果说事业都不能永恒,那么爱情只能是昙花一现?BR>
6、不要轻易接受追求你的女孩。女q男隔层U,如果你很Ҏ陷q去Q你会发C会错q很多东西,失去很多东西?BR>
7、请你相信,能用p决的问题Q都不是问题。如果你认ؓq王道Q有钱有女hQ没钱没女hQ那么,女h不是问题?BR>
8、请永远U极向上。每个男人都有他可爱的地方,但是不可q地方只有Q不U极面对生活?BR>
9、不要连l?ơ让同一个女人受C実뀂好马不吃回头草是有道理的。如果认真考虑q该分手Q那么请不要做Q何舍不得的行动?BR>
10、如果你和你前女友能做朋友,那么你要问自己:Z么?如果分手后还是朋友,那么只有2个可能:你们当初都只是玩玩而已Q没付出彼此最真的感情Q或者:必定有个人是在默默的付出无怨无悔!
11、永q不要太怿女h在恋爱时的甜a蜜语。都说女人爱听甜a蜜语Q其实,男h更喜Ƣ?BR>
12、请不要q相貌或者n高过分担心和自卑。h是动物,但是区别于动物。先天条件ƈ不是L你好好生zȝ借口。h的心灵远胜于相貌Q请怿q点。如果有Z相貌取hQ那么你也没必要太在意。因Z从某U意义来Ԍ只是只动物,你会跟动物怄气吗?
13、失恋时Q只?U可能,要么你爱她她不爱你,或者相反。那么,当你qZ再爱你,或者从来没p你时Q你没有遗憾Q因Z失去的只是一个不׃的h?BR>
14、请不要ƺ骗善良的女孩。这个世界上善良的女孩太?BR>
15、不能偏Ȁ的认为金׃能,臛_Q金钱治不好艾滋病?BR>
16、请一定要有自信。你是一道风景,没必要在别h风景里面仰视?BR>
17、受到再大的打击Q只要生命还在,L信每天的太阳都是新的?BR>
18、爱情永q不可能是天q뀂你惛_爱情里幸就要舍得伤心?BR>
19、如果你喜欢一个她认ؓ别h应该对她好的MMQ请早攑ּ。没有h是应该对一个h好的。如果她不明白这个道理,也就是她Ҏ不懂得珍惜?BR>
20、不要因为寂寞而“找”GFQ寂寞的男h误学会品味寂寞。请CQ即使寂寞,q方黑暗的夜IZQ一定有人和你一P寂寞的h不同QԒ望的星空却是唯一?BR>
21、Q何事没有永远Q也别问怎样才能永远。生zL很多无奈Q请量充实自己Q充实生zR请善待生活?BR>
End、男人有很多无奈Q生zd累,但是因ؓ生活才有意义。当你以Z一无所有时Q你臛_q有旉Q时间能抚^一切创伤。所以请不要泪?/P>
作?Andrew Thompson;xMatrix (他的blogQ?A >http://blog.matrix.org.cn/page/xMatrix)
原文地址:http://www.javaworld.com/javaworld/jw-10-2005/jw-1017-ajax.html
中文地址:http://www.matrix.org.cn/resource/article/44/44116_AJAX.html
关键词: AJAX
AJAX开发者的最新工具和技?/STRONG>
ZXML的异步JavaScriptQ简UAJAXQ是当前Web创新Q称为Web2.0Q中的一个王冠。感谢组成AJAX的各U技术,Web应用的交互如Flickr, Backpack和Google在这斚w已经有质的飞跃。这个术语源自描qCZ|页的Web应用到基于数据的应用的{换。在Z数据的应用中Q用户需求的数据如联pMh列表Q可以从独立于实际网늚服务端取得ƈ且可以被动态地写入|页中,l缓慢的Web应用体验着色之像桌面应用一栗?BR>
虽然大部分开发h员在q去使用qXMLHttp或者用Iframe来加载数据,但仅到现在我们才看到传统的开发h员和公司开始采用这些技术。就像新的编E语a或模型伴随着更多的痛苦,开发h员需要学习新的技巧及如何最好利用这些新技术。这文章讲qC开发h员用AJAX枰褂玫墓ぞ吆N?lt;br />
AJAX模式
许多重要的技术和AJAX开发模式可以从现有的知识中获取。例如,在一个发送请求到服务端的应用中,必须包含h序、优先、超时响应、错误处理及回调Q其中许多元素已l在Web服务中包含了Q就像现在的SOA。AJAX开发h员拥有一个完整的pȝ架构知识。同Ӟ随着技术的成熟q会有许多地斚w要改q,特别是UI部分的易用性?BR>
AJAX开发与传统的CS开发有很大的不同。这些不同引入了新的~程问题Q最大的问题在于易用性。由于AJAX依赖览器的JavaScript和XMLQ浏览器的兼Ҏ和支持的标准也变得和JavaScript的运行时性能一样重要了。这些问题中的大部分来源于浏览器、服务器和技术的l合Q因此必ȝ解如何才能最好的使用q些技术?BR>
l合各种变化的技术和合的客h务端环境QAJAX提出了一U新的开发方式。AJAX开发h员必ȝ解传l的MVC架构Q这限制了应用层ơ之间的边界。同Ӟ开发h员还需要考虑CS环境的外部和使用AJAX技术来重定型MVC边界。最重要的是QAJAX开发h员必ȝ止以面集合的方式来考虑Web应用而需要将其认为是单个面。一旦UI设计与服务架构之间的范围被严格区分开来后Q开发h员就需要更新和变化的技术集合了?BR>
时刻想着用户
AJAX的最大机遇在于用户体验。在使应用更快响应和创新的过E中Q定义Web应用的规则正在被重写Q因此开发h员必L注重用户。现在用户已l逐渐习惯如何使用Web应用了。例如用户通常希望每一ơ按钮点MD几秒的gq和屏幕hQ但AJAX正在打破q种长时间的状况。因此用户需要重C验按钮点ȝ响应了?BR>
可用性是AJAX另hȀ动的地方而且已经产生了几U新颖的技术。其中最引h注目的是一U称为“黄色隐出”的技术,他在数据更新之前时将用户界面变ؓ黄色Q更新完成后立刻恢复原来的颜艌ӀAJAX开发h员将用户从Web应用的负载中解放出来Q小心地利用AJAX提供的丰富接口,不久桌面开发h员会发现AJAX是他们的方向?BR>
几种工具和技?/STRONG>
随着AJAXq速地引h注目hQ我惛_发h员对q种技术的期待也迅速地增加。就像Q何新技术,AJAX的兴Z需要一整个开发工?~程语言及相x术系l来支撑?BR>
JavaScript
如名字所CAJAX的概念中最重要而最被忽视的是他也是一UJavaScript~程语言。JavaScript是一U粘合剂使AJAX应用的各部分集成在一赗在大部分时_JavaScript通常被服务端开发h员认为是一U企业应用不需要用的东西应该力避免。这U观Ҏ来自以前~写JavaScript代码的经历:J杂而又易出错的语言。类似的Q他也被认ؓ应用逻辑L地散布在服务端和客户端中Q这使得问题很难被发现而且代码很难重用。在AJAX中JavaScript主要被用来传递用L面上的数据到服务端ƈq回l果。XMLHttpRequest对象用来响应通过HTTP传递的数据Q一旦数据返回到客户端就可以立刻使用DOM数据放到网面上?BR>
XMLHttpRequest
XMLHttpRequest对象在大部分览器上已经实现而且拥有一个简单的接口允许数据从客L传递到服务端,但ƈ不会打断用户当前的操作。用XMLHttpRequest传送的数据可以是Q何格式,虽然从名字上是XML格式的数据?BR>
开发h员应该已l熟悉了许多其他XML相关的技术。XPath可以讉KXML文档中的数据Q但理解XML DOM是必ȝ。类似的QXSLT是最单而快速的从XML数据生成HTML或XML的方式。许多开发h员已l熟悉Xpath和XSLTQ因此AJAX选择XML作ؓ数据交换格式有意义的。XSLT可以被用在客L和服务端Q他能够减少大量的用JavaScript~写的应用逻辑?BR>
CSS
Z正确的浏览AJAX应用QCSS是一UAJAX开发h员所需要的重要武器。CSS提供了从内容中分d用样式和设计的机制。虽然CSS在AJAX应用中扮演至关重要的角色Q但他也是构建创览器应用的一大阻,因ؓ不同的浏览器厂商支持各种不同的CSSU别?BR>
服务器端
但不像在客户端,在服务端AJAX应用q是使用建立在如Java,.Net和PHP语言基础上机Ӟq没有改变这个领域中的主要方式?BR>既然如此Q我们对Ruby on Rails框架的兴也p速增加了。在一q多前,Ruby on Rails已经吸引了大量开发h员基于其强大功能来构建Web和AJAX应用。虽然目前还有很多快速应用开发工具存在,Ruby on Rails看v来已l储备了化构建AJAX应用的能力?BR>
开发工?BR>在实际构建AJAX应用中,你需要的不只是文本编辑器。既然是JavaScript非编译的Q他可以Ҏ地编写和q行在浏览器中;然而,许多工具提供了有用的扩展如语法高亮和完成?BR>
不同的IDE提供了对JavaScript支持的不同等U。来自JetBrains的IntelliJ IDEA是一个用来JavaScript开发的更好的IDEQ虽然许多开发h员也喜欢Microsoft’s Visual Studio产品Q允Z在最新的版本中改善对AJAX的支持)。Eclipse包含了两个免费的JavaScript~辑器插件和一个商业的来自ActiveStat的Komodo IDE?BR>
另一个JavaScript和AJAX开发中的问题是调试困难。不同的览器提供不同的通常是隐藏的q行旉误信息,而JavaScript的缺陷如双重变量赋|通常是由于缺数据类型)使得调试更加困难。在AJAX的开发中Q调试就更复杂了Q因为其需要标识究竟是客户端还是服务端产生的错误。在q去QJavaScript调试的方法是删除所有代码然后一行行的增加直到错误出现。现在,更多开发h员回CؓIE准备的Microsoft Script Debugger和ؓMozilla览器准备的Venkman?BR>
览器兼Ҏ?/STRONG>
JavaScript~程的最大问题来自不同的览器对各种技术和标准的支持。构Z个运行在不同览器(如IE和火狐)是一个困隄d。因此几UAJAX JavaScript框架或者生成基于服务端逻辑或标记库的JavaScriptQ或者提供符合跨览器AJAX开发的客户端JavaScript库。一些流行的框架包括QAJAX.Net, Backbase, Bitkraft, Django, DOJO, DWR, MochiKit, Prototype, Rico, Sajax, Sarissa, and Script.aculo.us.
q些框架l开发h员更多的I间使得他们不需要担心跨览器的问题。虽然这些框架提升了开发h员构建应用的能力Q但׃厂商已经开发了更细节的用户界面的打包组件解x案,因此在AJAXlg市场中需要考虑一些其他因素。例如提供通用用户界面的组件如l合框和数据栅格的几个厂商,都可以被用来在应用中创徏良好的通过cM电子数据表方式来查看和编辑数据的体验。但q些lg不仅是封装了lg的用L面而且包括与服务端数据的通讯方式Q这些组仉常使用Z标记方式来实现如ASP.Net或JSF控g?/P>
展望
最qIE和火狐之间的览器之争变得火热v来,因此AJAX开发h员需要够敏L作出反应。关键点在一些问题如CSS或XMLQ虽然各U浏览器形成采用最新标准的不同阵营Q如Mozilla拥抱SVG和E4X标准及在最新火狐BETA版本中用XULQ而微软用自qXAML技术)。所有这些技术代表当前AJAXLJavaScript和XML的市场方向改变?BR>ȝ来说QAJAX开发h员必d快地跟进最新的技术ƈ利用高的工具集。成功的AJAX开发h员还需要留心他们的使用者以避免Q何问题扩大化。ƈ且AJAX开发h员还需要持l地创新来创建增强Web应用易用性的新方法?/P>
作?/STRONG>
Dave Johnson是加拿大Vancouver一家Y件咨询公司eBusiness Applications创始人和传道者,拥有七年以上的XML相关工作l验?/P>
Resources
?nbsp;AJAX开发h员的~译模式:http://www.ajaxpatterns.org
?nbsp; XMLHttpRequest教程Q“动态网|口?http://www.xml.com/pub/a/2005/02/09/xml-http-request.html
?nbsp;JavaScript性能基准:http://blogs.ebusiness-apps.com/dave/?p=14
?nbsp;AJAX资源:http://www.ajaxmatters.com
?nbsp;JavaScript规范:http://www.ecma-international.org/publications/standards/Ecma-262.htm
?nbsp;介绍JavaScript对象标识:http://www.crockford.com/JSON/index.html
?nbsp; Mozilla 的Venkman JavaScript调试?http://www.mozilla.org/projects/venkman/
?nbsp; XML DOM参?http://msdn.microsoft.com/library/default.asp?url=/library/en-us/
xmlsdk/html/e9da2722-7879-4e48-869c-7f16714e2824.asp
?nbsp;Microsoft Dynamic HTML reference: http://msdn.microsoft.com/library/default.asp?url=/
workshop/author/dhtml/reference/dhtml_reference_entry.asp
?nbsp;Gecko DOM Reference: http://www.mozilla.org/docs/dom/domref/
?nbsp;"“移植IE应用到Mozilla?BR>http://www-128.ibm.com/developerworks/web/library/wa-ie2mozgd/
?nbsp;Mozilla XUL reference:
http://www.xulplanet.com/
?nbsp;Microsoft XAML reference:
http://windowssdk.msdn.microsoft.com/library/default.asp?url=/library/
en-us/wcp_conceptual/html/0ff5f36e-dd84-44d1-aa3e-5bb4f147b169.asp?frame=true
?nbsp;James Jesses Garret introduced the term AJAX in his article "AJAX: A New Approach to Web Applications," (Adaptive Path, February 2005): “AJAXQ新的网应用开发方式?BR>http://www.adaptivepath.com/publications/essays/archives/000385.php
?nbsp;JetBrains IntelliJ IDEA:
http://www.jetbrains.com/
?nbsp;Microsoft Visual Studio:
http://msdn.microsoft.com/vstudio/
?nbsp;JSEditor:
http://jseditor.sourceforge.net/
?nbsp;JSEclipse:
http://www.interaktonline.com/Products/Eclipse/JSEclipse/Overview/
?nbsp;ActiveState Komodo:
http://www.activestate.com/Products/Komodo/
?nbsp;XHTML:
http://www.w3.org/TR/xhtml1/
?nbsp;Document Object Model:
http://www.w3.org/DOM/
?nbsp;Cascading Style Sheets:
http://www.w3.org/Style/CSS/
?nbsp;Extensible Stylesheet Language:
http://www.w3.org/Style/XSL/
?nbsp;XForms:
http://www.w3.org/MarkUp/Forms/
?nbsp;Scaling Vector Graphics:
http://www.w3.org/Graphics/SVG/
?nbsp;XPath:
http://www.w3.org/TR/xpath
?nbsp;AJAX.Net:
http://ajax.schwarz-interactive.de/csharpsample/default.aspx
?nbsp;Backbase:
http://www.backbase.com
?nbsp;Bitkraft:
http://www.tiggrbitz.com/
?nbsp;Django:
http://www.djangoproject.com/
?nbsp;Dojo:
http://www.dojotoolkit.org/
?nbsp;DWR (Direct Web Reporting):
http://getahead.ltd.uk/dwr/
?nbsp;MochiKit:
http://mochikit.com/
?nbsp;Prototype:
http://prototype.conio.net/
?nbsp;Rico:
http://openrico.org/rico/home.page
?nbsp;Sajax:
http://www.modernmethod.com/sajax/
?nbsp;Sarissa:
http://sarissa.sourceforge.net/doc/
?nbsp;Script.aculo.us:
http://script.aculo.us/
?nbsp;Ruby on Rails:
http://www.rubyonrails.org/
?nbsp;For more on AJAX and DWR, read "AJAX Made Simple with DWR," Cloves Carneiro Jr. (JavaWorld, June 2005): 关于AJAX和DWRQ请阅读“AJAX使用DWR更简单?BR>http://www.javaworld.com/javaworld/jw-06-2005/jw-0620-dwr.html
?nbsp;For more articles on Java development tools, browse the Development Tools section of JavaWorld’s Topical Index: 更多Java开发工L文章Q请览JavaWorld的开发工具部分烦引页
http://www.javaworld.com/channel_content/jw-tools-index.shtml
?nbsp;For more articles on XML, browse the Java and XML section of JavaWorld’s Topical Index: 更多XML的文章,h览JavaWorld的Java和XML部分索引?BR>http://www.javaworld.com/channel_content/jw-xml-index.shtml
?nbsp;For more articles on UI design, browse the User Interface Design section of JavaWorld’s Topical Index: 更多UI设计的文章,h览JavaWorld的UI设计部分索引?BR>http://www.javaworld.com/channel_content/jw-ui-index.shtml
如果一ơ性获取完整的先序树,构造成xml提供lJavaScript解析Q数据量大Q消耗的资源多Q客L响应延迟旉p长,因此对于大数据量的树Q采用动态加载方式,xơ单几Z?”图片时Q判断是否已加蝲子节Ҏ据,如果未加载则通过Ajax的XMLHTTPlgXMLHTTPRequest对象异步发送请求,q接服务器执行SQL 语句“select * from tree_class where parent = Qorder by classcode ”获取节Ҏ据。相关JavaScript 代码如下Q?/P>
/*判断是否已经加蝲数据Q未加蝲则访问服务器加蝲数据*/
dhtmlTree.prototype.Loading=function(pObject){
if(((pObject.XMLload==0)&&(this.XMLsource))&&(!this.XMLloading)){
pObject.XMLload=1;
this.loadXML(this.XMLsource+getUrlSymbol(this.XMLsource)+"id="+escape(pObject.id));
}
}
dtmlXMLObject.prototype.loadXML=function(url){//加蝲数据
try {
this.xmlDoc = new XMLHttpRequest();
/*通过GETҎ异步q接?url 加蝲数据*/
this.xmlDoc.open("GET", url,true);//trueQ异步;falseQ同?BR> this.xmlDoc.send(null);
} catch(e){
this.xmlDoc = new ActiveXObject("Microsoft.XMLHTTP");//使用IE
this.xmlDoc.open("GET", url,true);//trueQ异步;falseQ同?BR> this.xmlDoc.send(null);
}
return this.xmlDoc.responseXML;
}
每次只取同一个父节点ParentId的子节点序列Q按XML格式装成树的文档结构,例如Q?/P>
Qtree id="0"Q?BR>Qleaf child=?" name="国防U技大学" id="1" im0="leaf.gif" im1="folderOpen.gif" im2=" folderClosed.gif"/Q?BR>Q?treeQ?/P>
提供lJavaScript的dhtmlTreeObject.prototype.insertItemQ)解析q组l好html输出节点Q其?childQ?表示有子节点Q?表示没有子节点;im0表示没有子节Ҏ的图标;im1表示有子节点q且打开节点时的图标Qim2表示有子节点q且关闭时的图标Q所以还可以在构造XML时自定义图标?/P>
2.3.2 树型l构的构?/P>
从数据库中返回的是有序的先序树,而XML是完整的树型l构文档Q所以将树型数据构造成预定义的XML格式Q只需从根节点开始,遍历一遍树Q即可将树全部生成。相关JavaScript代码如下Q?/P>
/*动态加载树的构造方?/
dtmlXMLObject.prototype.constructTree=function(){
//采用动态加载时获取的xml数据Q解析树型数?BR>
var node=this.XMLLoader.getXMLTopNode("tree");
var parentId=node.getAttribute("id");
for(var i=0;iQnode.childNodes.length;i++) { //逐个解析xml文g的leaf节点
if((node.childNodes[i].nodeType==1)&&(node.childNodes[i].tagName == "leaf")){
var name=node.childNodes[i].getAttribute("text");
………?BR> var temp=dhtmlObject.a0Find(parentId);//获取父节点对?BR> temp.XMLload=1;//已加?BR> //构造html输出节点
dhtmlObject.insertItem(parentId,cId,name,im0,im1,im2,chd);
dhtmlObject.addDragger = this;//讄可拖攄对象
};
}
2.3.3 树型l构的维?/P>
在维护树型结构表?删除节点较ؓ单,SQL 语句? "delete from tree_class where classcode like?+ classcode +"%?,卛_其节点和孩子一q删除;增加节点?分ؓ前插、后插、和插入子节点三U情况,前两U情况需要更新递归更新cd代码Q后者只需扑ֈ父节点的孩子的最大类别代码加1 ?作ؓ增加节点的类别代码;通过拖放来改变树的结构时Q只需拖动节点的parentId更新为目标节点的Classid卛_Q对应的SQL语句为:"update tree_class set parentId = "+ classidTo+" where classid = "+ classidFrom?/P>
3、效率分?/STRONG>
对于树的存储一般有两种形式Q二l表和链表,遍历方式一般也有深度遍历和q度遍历两种方式Q遍历的旉复杂度都是O( n )。用二维表存储时Q在内存中用数组的下标能准确定位节点的父节点、兄弟节Ҏ在的数组下标。数据库中节点的定位也是准确的,但是节点信息从数据库中d内存中时Q如果无法通过内存数组下标定位节点信息Q那么就必须遍历一遍寻找一个节点,n 个节点中L一个节点的旉是O(n/2)Qn 个节Ҏ序的旉复杂度将是O( n 2/2)Q这也是一般实现的B/S 模式的树l构效率低下的原因。本Ҏ采用字典序编h案,使得从数据库中取得的树是已经排序的,直接遍历生成客户面E序Q时间复杂度为O( n )?/P>
4、结 ?/STRONG>
本文讨论了基于Ajax的动态树型结构的实现ҎQ支持无h动态维护树的节点信息,支持拖放节点改变树的节点l构以及ơ序Q同旉用数据库存储节点信息Q保证了该方案有一定的通用性,此外l合XML描述树的节点信息Q得Q何按本方案预定的xml文档描述的信息都可以通过树来展现。本Ҏ已经应用在我校的数字q新pȝ以及老百姓大药房信息pȝ中?/P>
Q?DIV id =mParentIDQ?BR>Q?IMG align = center border = 0 onclick =″nodeExpand (‘leafid??name = m1Tree src =′Tplus.gifԌ
Q?IMG align = center border = 0 name = m1Folder src =′folderClosed. gifԌ 计算机学?Q?pQ?/P>
叶子节点无需容器直接输出卛_?BR>
当点L节点前的?+ ”、?- ”图片时通过DIV 的style 样式的display 属性控制子节点的展开和隐藏。displayQ“none?隐藏,不可?QdisplayQ“block?昄) 。相关JavaScript 代码如下Q?/P>
if (expandChild.style.display = =″none?{
// 当前为隐藏状?执行展开动作
this.Loading(parentObject);//判断该分支的数据是否已经加蝲
expandChild.style.display =″block?
if (para2 = =″last?
parentObject.src =″Lminus. gif? // 最后一个节?BR>else
parentObject.src = ″Tminus. gif? // 昄?BR> expandFolder.src = ″folderOpen. gif?
}else {
// 当前节点的子节点全部隐?BR> expandChild.style.display = ″none?
if (para2 = = ″last?
parentObject.src = ″Lplus. gif?
else
parentObject.src = ″Tplus. gif?
expandFolder.src = ″folderClosed. gif?
}
?3 树型表结构示意图
树遍历的旉复杂度是O( n )Q但是将树信息存攑ֈ数据库后Q就不能按传l的方式遍历树,必须使用SQL 语句讉K数据库表的内容,而一ơ性取的数据量多Q消耗的资源也越多,用户{待的时间就长。如果将无序的数据从数据库中dQ在服务器端Q必d排序后的树送到客户端显C。因此,最好从数据库读出已排好序的树?BR>
我们知道Q字W串排序是按照字典序形式。结合SQL 语句的特点和树结构特点,数据库表中,节点的类别代码采用多U字W串形式Q如AAABBBCCCQ从树根节点开始,每向下一U字W串增加一U,q且子节点类别代码以父节点类别代码开始,再开始本U的cd代码。同U的节点按照生成的顺序编P如节点类别代码ؓAAA 的下一U孩子类别代码ؓAAAAAAQAAAAAB {,AAAAAB 的孩子节点ؓAAAAABAAA、AAAAABAAB{。每一U编号字W的宽度与实际的应用兌Q如AAA~ZZZ 一U则?63 个节点,如果不够用再增加一个字W用于编码。该巧妙的编h式。得在执行SQL 语句select * from tree_class order by classcode 后,一ơ获得完整的先序.
原文链接:http://www.7dspace.com/doc/44/0512/2005122906292220003.htm