作者:小天  文章来源:http://www.alixixi.com/  更新时间:2006-3-20

什么是SkyTree?

SkyTree是维动工作室成员Newskyline(小天)编写的一个基于ASP的Web应用小程序,它可以很方便的在各种浏览器中实现动态的树型结构显示,同时也可以将树型以文本格式显示在下拉选框中,作为选择项。因为本程序基本上不需要维动架构的支持,所以比较通用。SkyTree的实现方式与许多前辈采用的方法不同,SkyTree并不是利用客户端脚本和DOM进行面向对象的编程生成的HTML树,而是通过对服务器端对象的属性配置和方法调用生成HTML代码传回客户端,结合一些修正和改善操作的客户端代码,展示在浏览器页面上的HTML树。如果您还不是很理解SkyTree的实现思路和原理,请跟着我们的向导一起来认识SkyTree吧。

SkyTree的特点

  • 支持各种浏览器。因为树型结构的HTML代码是在服务器端生成,避免了客户端复杂的情况,而客户端的脚本完全按照W3C标准编写,因此兼容几乎所有的浏览器。
  • 支持直接从XML载入,调用简单,易于维护。SkyTree可以直接从XML文件或者XML文本载入结构,并自动判断结构的正确性。如果需要从数据表中加载,则需要一个转换程序(下载包中有此类程序的Case,请根据个人需要自行修改,建议采用ASP缓存机制以提高服务器端执行效率)。最简单的调用和显示仅需要4行代码即可实现,如下:
    	Dim ObjTree
    	Set ObjTree = New CHTMLTree
    	ObjTree.Load(Server.Mappath("./XML/Demo.xml"))
    	Response.Write(ObjTree.Show())
    		
  • 支持超文本的结点显示方式。结点现实效果可以是带超文本格式的字符串,树的表现形式也因此变得更加个性化。根据自己的需要,将载入的XML文件或者文本中相应的结点文字改为带超文本格式的字符串即可。注意需要使用部件。
  • 可以自定义结点图标。在XML中相应的结点添加自定义图标的链接地址即可。
  • 支持完全展开和收缩。通过SkyTree的客户端脚本实现该功能,请参考下载包中的Case。
  • 支持带多选框(或单选按钮)的结点显示。通过简单的对象属性设置即可开启此功能,多选框和单选按钮的值即结点的值,获取值的方法可以根据自己需要编写方法。也可以配合Form使用。SkyTree的客户端脚本还提供可选的智能选择的功能,即当选择按钮类型为多选框时,时选中某个结点,将自动选中该结点的所有上级结点和下级结点;取消选择时,则会自动取消所有下级已经被选中的结点。
  • 可显示为下拉框(或列表框)选项的形式。这是SkyTree的独创功能,只需要对同一对象进行管理,输出时通过调用不同的方法,即可获取型为option选项的树型下拉框或列表框。
  • 可以定位(自动展开)到某一结点。可以设置根据结点值(推荐)或者标签文字内容来定位该结点。显示树型结构时将自动展开到被定位的结点,并显示定位标记(标记文字是可以自定义的)。该定位功能同样适用于下拉框和列表框,表现为选中某个选项。
  • 超眩的滑动效果。在展开、收缩子树时出现的软性滑动效果(可设置加速度与滑动时间)。此效果只在IE浏览器下有效,在其他浏览器(如FireFox、Opera)中则直接展开和收缩。

问题与思考

  • 关于效率。肯定有人会问,如果所有的(显示)工作都交给服务器端来完成,是不是会造成服务器端的负荷过重。对于这个问题,我的回复是肯定的,比起由客户端生成HTML代码来说,这样的方式的确会加重服务器端的负担,且不说是否在从数据库读取结点信息时利用缓存,仅从I/O角度分析,这样的负担也是绝对存在的。因此,小天还是很客观的给SkyTree当前的版本一个限度定位:500结点以内。结合各类缓存,这个结点数范围以内应该是没有问题的,如果再往上走,可能会吃力一些。当然,个人使用或者使用频度不算高的时候结点多一些也就无所谓了。至少,我们这样做避免了客户端的一些麻烦。
  • 异步加载的实现。SkyTree的尝试版本中,小天曾经实现过XML异步加载功能,但现在大家看到的SkyTree与那个版本几乎是完全不同两个ASP类,所有代码均重新编写了,并且指导思想与实现方式都发生了很大的变化。从目前的情况来看,要在现在这个版本的基础上实现XML的异步加载,需要付出的努力是很大的。

官方下载地址: http://www.alixixi.com/Down/Code/ASP/2008/2008022492633.html

<
网友评论
相关搜索
阿里西西Baidu.com搜索