ASP网站制作之ASP做象资本办理器的树形目次
无法实现跨操作系统的应用。当然这也是微软的理由之一,只有这样才能发挥ASP最佳的能力。可是我却认为正是Windows限制了ASP,ASP的概念本就是为一个能让系统运行于一个大的多样化环境而设计的; 1、读者指引 读者指引匡助你把握本文的梗概。以避免你看了泰半才分明这编文章不合适你,给你形成视觉净化。假如你正在用ASP+XML写一些程序,大概你正在学XML那就值得一看。
浏览本文须具有的常识,对ASP有基础的懂得,对XML和DOM有基础懂得,假如你不懂得那末你经由过程进修本文基础上可以撑握ASP+XML和DOM的使用,并能依据本文范写出自已更初级的ASP+XML程序。
2、基础头脑
本文头脑是基于用ASP和DOM来读取和存储XML数据,并使用XML数据来存储留言信息,到达同用数据库存储数据的功效。
3、XML留言本的上风
也许你会问用ASP+TXT文本也能够到达不必数据库实上留言的功效,不错的确可以做到,并且网上也有良多如许的留言本收费下载,但这里我要讲一下ASP+XML的优胜性。
1、XML+ASP比ASP+TXT速率要快。大概你也发明当TXT文件很少时速率出奇的快,可是跟着留言信息的增添TXT文本变年夜,速率却又是出奇的慢这就是ASP+TXT的缺点。固然我不克不及说ASP+XML就必定是出奇的快,可是比起ASP+TXT来讲是快了很多,固然跟着留言信息的增添XML文本增年夜速率也下落很快,可是比起TXT来讲就仍是好了很多(这一点能够从WAS测试证实读者能够自行测试),固然ASP+XML比不上数据库,由于数据库对查询做了出格的优化,而XML只是纯文本,在ASP创建对像是要把XML数据全体读进内存中,假如数据量年夜的话不可思议速率会慢上去。
那你大概会问那我甚么时分用干系数据库存储数据,又甚么时分用XML存储数据呢?我这里也特地提一下,就是当数据对照庞大无规率时用XML数据对照符合,另有就是你盘算这些数据要在分歧的操纵体系上读取使用时那就是XML大显神通的时分了。假如你是一般的数据那末不到关头时候或不撑持数据库的空间时仍是不要用XML文件来存储数据为好。
2、XML数据的易读取性,TXT文本是对照难操纵的,我们必需一行一行的读取判别,并且良多功效没法实上,只能体例对照复杂的留言本,而XML数据则分歧了,使用DOM能够容易的会见每个节点,而不是TXT那些烦人的Readline()Witeline()了,我们能够随便的到场删除更新某一个我们感乐趣的节点,使用ASP大概JS大概数据岛都能够轻松实上这一点,固然我这里为发思索兼容性,用了ASP来读取XML数据,而没有效数据岛来读取节点数据(由于只要IE5以上版本才撑持数据岛手艺)而用ASP来实上就不存在这些问了由于客户失掉的是HTML文件。
3、XML数据夸操纵体系性,只需我们把这些数据存储为XML那末这些数据就可以被应何基它言语或体系所辨认,而不必做应何修改。TXT明显不具有这些功能。比方我们在网上的留言信息能够间接被被转换成wap格局在手机上显现。
4、创建存储留言信息的XML文件(List.xml)
我们这里不盘算利用DTD,由于我们这是我们自已体例并测试经由过程的XML数据,以是不必要DTD来考证(假如你对此感乐趣固然能够加一个这不影响程序的运转)。如今我们来看看创建一个留言本的基础要素
0、留言ID号--界说为<id>
1、用户名我们--界说为<username>
2、来自那边们--界说为<fromwhere>
3、留言工夫定--义为<Posttime>
4、用户主页定--义为<homepage>
5、用户的信箱--界说为<email>
6、留言内容定--义为<text>
固然以上不是必需的读者能够自行定名并加减相干标签,把它们组合起来就失掉List.xml的文件了
<?xmlversion="1.0"encoding="gb2312"?>
<site>
<NewList>
<list>
<id>1</id>
<username>苛子</username>
<fromwhere>中国广州</fromwhere>
<Posttime>01-4-2318:26:56</Posttime>
<homepage>http://page2000.xiloo.com</homepage>
<email>lucaihui@cmmail.com</email>
<text>这是我的第一个XML文件</text>
</list>
</NewList>
</site>
注重:必需加上encoding="gb2312"不然会报错为不法字符,由于XML默许不撑持中文。<site>为根节点<NewList><ist>等为子节点。对这个文件的意义我就未几说了人人也应当看的分明了。接上去就是我们怎样来显现它了。
5、创建显现XML数据的ASP文件(index.asp)
这个文件要完成的功效就是读取并显现XML数据,起首创立一个XML对像然后把XML读进内存中,使用DOM分别出我们所要的数据。
<%
strSourceFile=Server.MapPath("/")&"List.xml"
猎取XML文件的路径这里依据你的假造目次分歧而分歧
SetobjXML=Server.CreateObject("Microsoft.FreeThreadedXMLDOM")
以自在线程创立一个XML对像
objXML.load(strSourceFile)把XML文件读进内存
SetobjRootsite=objXML.documentElement.selectSingleNode("NewList")
拔取NewList节点
%>
<html>
<head>
<title>留言本</title>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">
<styletype="text/css">
<!--
td{font-family:"宋体";font-size:9pt;text-decoration:none}
a{font-family:"宋体";font-size:9pt;color:#0066CC;text-decoration:none}
a:hover{color:#FF6600;text-decoration:underline}
-->
</style>
</head><bodybgcolor="#0099CC"text="#000000">
<tablewidth="80%"border="0"cellspacing="1"cellpadding="4"align="center"bgcolor="#CCCCCC">
<trbgcolor="#000000">
<tdcolspan="2"><fontcolor="#FFFFFF">留言溥<ahref="PostNew.asp"><fontcolor=#FFFFFF>写新留言
</font></a></font></td>
</tr>
<%
PageSize=10假定每页显现10条留言
AllNodesNum=objRootsite.childNodes.length-1
猎取子节点数据(由于是从节点数从0入手下手的所最年夜子节点数要减1)
PageNum=AllNodesNumPageSize+1算出总页数
PageNo=request.querystring("PageNo")
ifPageNo=""then假如是每次取得页面则定位到每页显现最新的留言
PageNo=PageNum
树形目次显现程序
成绩形貌:
在我们项目中经常会呈现自联系关系的数据表,假如我们从全体看往,全部表就出现为一个树形数据布局(关于庞大的情形,它大概酿成一个图)。当我们对这个表举行显现,编纂时,假如不接纳好的体现情势,会显得很愚笨,为此,我们开辟如许的树形布局的程序。在上一版本中,我们利用的是递回算法来完成,在我们对这个算法评测时发明,关于具有不计其数笔记录的数据库就不再能胜任了,以是在新的算法版本中,我们利用了XML手艺,静态的发明数据,以办理一次从服务器下在大批数据的为难,同时也遍免了假如表数据布局出现为图时就会进进逝世轮回的毛病。
实践思绪:
1、初始显现时只显现根与二级节点,根与二级节点同在一条理
2、点击一节点,假如它的子节点地区工具不存在,则创建工具,同时下载数据更新数据,显现一切子节点。
3、每一个节点在创建后都就有不异的功效,如反省子节点是不是存在,显现埋没子节点等等
4、DHTML+XML+ASP+CSS同时利用
手艺难点:
1、利用xmlhttp接口时乱码成绩:
由于在asp输入页面中,缺省的编码计划并非中文的,那末在客户端页面的xmlhttp中注释时,就会以缺省的计划剖析,以是就会呈现乱码。为此,我们在Server真个asp页面中,到场以下代码界说编码计划:
Response.CharSet="GB2312"
Response.ContentType="text/html"
2、怎样在界面上坚持上一版本的作风(类资本办理器情势):
在上一版本中,一切的页面内容都是一挥而就的,在把持上接纳递回等头脑,一切时的界面绝对友爱,事先本版中的机制产生了变更,内容是有屡次分解的关头成绩,img,span工具的id怎样断定经由求证,在界面上,本版本的界面难以与第一界面不异,以是只能保存一部分,可是整体来讲,新界面一样也能满意必要
由于在这里欠好利用附件,以是只能贴源码了:
---xtree.html------
<HTML>
<HEAD>
<METANAME="GENERATOR"Content="MicrosoftVisualStudio6.0">
<SCRIPTLANGUAGE=javascriptsrc="xtree.js">
</SCRIPT>
<styletype="text/css">
<!--
a:link{font-size:14px;text-decoration:none;color:#0000FF}
a:visited{font-size:14px;color:#0000FF;text-decoration:none}
a:hover{font-size:14px;color:#FF0000;background-color:#CCCC99;text-decoration:none}
a:active{font-size:14px;color:#FFFFFF;background-color:#191970;text-decoration:none}
.item{font-size:14px}
-->
</style>
</HEAD>
<BODYleftMargin=0rightMargin=0topMargin=0border=0>
<bold>树形菜单演示程序</bold><br>
<tableborder=0>
<tr><tdnowrap>
<spanid=oSpanrootborder=0></span><SCRIPTLANGUAGE=javascript>createChildNode("root",0);</SCRIPT></td></tr>
</table>
</BODY>
</HTML>
-------xtree.asp------------
<%@Language=VBScript%>
<%
Response.CharSet="GB2312"
Response.ContentType="text/html"
Servercodestart
dimparId,nodeLayer
parid=Request.QueryString("parId")
nodeLayer=cint(Request.QueryString("nodeLayer"))
if(parid="")then
Response.Write("rootidcantisnull")
Response.End()
endif
if(nodeLayer<0)then
nodeLayer=0
endif
%>
<%
strconn="at"
strsql="select*fromtreewherepar="&parid&""
SQL语句誊写请求:在纪录集的后面三个字段必需顺次为:row_id(唯一的主键)、name(菜单条显现的内容)、par_id(父节点row_id),别的依据必要输入与显现
setconn=server.createobject("ADODB.connection")
conn.openstrconn
setrs=server.createobject("ADODB.Recordset")
rs.openstrsql,conn,3,3
优点:简单易学、开发速度快、有很多年“历史”,能找到非常多别人做好的程序来用、配合activeX功能强大,很多php做不到的asp+activeX能做到,例如银行安全控件 我想问如何掌握学习节奏(先学什么再学什么)最好详细点? ASP的语言不仅仅只是命令格式差不多,而是包含在<%%>之内的命令完全就是VB语法。虽然ASP也是做为单独的一个技术来提出的,但他就是完全继承了VB所有的功能。 Application:这个存储服务端的数据,如果不清除,会直到web应用程序结束才清除(例如重启站点) 以HTML语言整合(HTML负责界面上,ASP则负责功能上)形成一个B/S(浏览器/服务器)模式的网页程序。 那么,ASP.Net有哪些改进呢? 如何学好ASP,以前也有人问过,把回答给你转过来看看能否对你有帮助: 他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。 跟学别的语言一样,先掌握变量,流程控制语句(就是ifwhileselect)等,函数/过程,数组
页:
[1]