拼吾爱程序人生

首页 » 其他编程 » XML » 利用ASP和XML制作菜单导航系统
Systemjudge - 2007-8-6 5:01:00
1.1 概述
   高效地利用Web页面有限的空间并不容易,特别是要在页面中安排大量的链接时尤为困难。如何才能组织好各种链接以便为其它重要内容留出空间?是一次性地展示所有链接还是分成多个页面把它们深深地隐藏起来?显然,这两种方法都不理想。利用DHTML,我们可以在为用户提供快速方便的访问链接的同时,为其它内容保留足够的页面空间。
   本文介绍一个菜单系统的实现。这个菜单与Windows的“开始”菜单非常相似,用户只需点击一次鼠标即可访问所有链接。菜单的内容由XML文档定义,客户端行为由DHTML实现。XML文档的解析在服务器端完成,因此对用户浏览器是否支持XML并没有要求。

  本文接下来的内容具体介绍其实现,包括XML文档的结构以及如何分析这个XML文档、配合客户端JavaScript一起构造出最终的菜单。
   1.2 静态和动态
   页面内容动态生成是指在用户请求时才动态地(自动地)生成内容,静态内容则是将自动生成的内容保存为文件,用户请求的时候发送给他们的是这些静态的文件。有读者曾经来信指出这个问题,我们在《再论Web内容的发布——用XML与ASP分离内容与设计》中转发了读者来信并谈了自己的看法。
   依赖于菜单的实际大小和菜单内容变化的频繁程度,有些时候可能不想让菜单动态生成。这时候可以将菜单代码做成静态的:运行本文介绍的脚本,将所生成的菜单HTML代码保存为包含文件再直接引用就可以了。如果可以采用这个方案的话,它将节省大量宝贵的服务器资源。
   本文以动态菜单为例具体介绍实现原理。不过为了方便读者,在下载包中我们提供了两个版本的服务器脚本,分别用于动态生成菜单和生成静态的菜单HTML代码。使用静态版本时,先打开xmlCreateMenu_Entry.asp页面,在这里输入如下两个信息:第一是所使用的XML文件,第二是包含文件的路径,这个包含文件将保存HTML格式的菜单代码。输入上述信息后即可自动运行服务器脚本生成菜单代码。以后如果要改变菜单内容,只要修改XML文件,然后再重复上述过程就可以了。
   使用静态菜单时,参考本文default.asp中的动态菜单使用方法,只需将default.asp中的< !--#include file="XMLCreateMenu_Dynamic.asp"-- >改成包含静态菜单文件即可。
   1.3 数据结构
   XML无疑是当前最为热门的话题之一,人们普遍相信未来的Web就在于XML。不过本文使用XML来定义菜单内容并非是为了赶时髦,在这里使用XML确实有其特别的好处。
   首先,既然使用了菜单系统,那么它就不大可能只用在一、二个页面上,往往是整个网站的所有页面都要用到同一菜单。这就要求能够快速地构造菜单,尽量地减少访问菜单定义数据所消耗的时间。第二,菜单是一个层次结构,定义菜单内容的数据最好也具有层次结构。这不仅可以方便地体现出各个菜单项之间的从属关系(从而有利于修改),而且在本文后面我们还可以看到,用递归函数来分析层次结构的数据是相当方便的。
   XML可以很好地满足这两个要求,不仅数据可以快速地访问(无需额外的网络连接,无需登录数据库等),而且XML能够非常自然地描述出数据的层次结构。此外,前面我们已经提到,XML文档的解析在服务器端完成,因此并不要求用户浏览器支持XML。
   编辑XML文档既可以使用普通的文本编辑器,也有许多专用的XML编辑器可供选择,有关这方面的内容以及XML基础概念的说明,请参见《XML简明教程》,也请参见XML Tools。
   创建菜单系统的第一步是在XML文档中定义菜单内容。在考虑了几种可能的方法之后,我们决定采用最简单的一种方法,使得不太熟悉XML的读者也能理解和更改这个XML文件。每一个菜单项至少包含两个数据,即菜单项的文本和链接;如果菜单项拥有多个子菜单,可以很方便地加入子节点。为保持整个系统的简洁性,菜单最多不能超过三层。下面是本文XML文件的一个片断。 9
7
3
1
2
3
4
5
6
4
8
:

 您可能对 [XML] 的这些文章也感兴趣:

C#中XML的基本操作
用XSLT生成网页菜单
XML Schema学习初体会
XML创建可排序、分页的数据显示页面
Javascript 调用XML制作连动下拉框
XML与HTML的结合
XML串行化数据基础
C#来创建和读取XML文档
基于XML的桌面应用
使用DOM创建XML
1
查看完整版本: 利用ASP和XML制作菜单导航系统
Modify by pin5i DZNT_ExpandPackage 2.1.3237 2007-2008 pin5i.com