|
更多学习资料请登陆新钱景网络工作室:www.xinqj.com
ASP初学者的10个编程技巧:
1.注释你的代码!
许多程序员在看他们仅数月前所写的代码时头疼欲裂,毫无头绪,事实上他们还正在为以后制造麻烦! 老代码艰涩难读的原因之一是它们缺乏有效的注释. 在ASP里(如果用VBscript的话),你可以用单引号了注释你的代码,下面就是一个例子:
<%
' Create a variable to hold the user's name
Dim strName
...
%>
如果你用Javascript,你可以用//来注释代码,下面是Javascript注释的一个例子:
<%
// Create a variable to hold the user's name
var strName;
...
%>
但甚麽时候我们该注释代码呢? 在代码的世界里并不存在"过量注释"的问题,因此只要你觉得这个特殊的地方需要注释,就应该毫不犹豫地加上注释! 一般说来,应注释定义的新变量,注释过程和函数,注释某段相关的代码(解释编写这段代码的意图)以及代码中特别难或特别复杂的某些行.
通过对代码的详尽注释,你的ASP应用程序的可维护性将大大提高. 从某种意义上说,注释是一门不为人知的科学,如果不愿意花时间去书写注释,那么在漫长的开发旅程中将增加许多无谓的痛苦. 可以在写ASP代码前先写下相应的伪代码,这也是一种注释,从此,你将走上注释之路.
2.得会写"纯天然"的ASP代码!
今我们常常会发现,许多程序员对DrumBeat或Visual InderDev之类GUI的ASP开发工具有着深深的依赖性. 这些开发工具并不赖,但如果你离开了这些GUI工具就不知道该怎么办的话,那么它们就是有害的!
为甚麽说它们是有害的呢? 好,让我们设想一下,一旦你的手头正好没有这些GUI的开发工具,但你的代码出了些问题,你该怎么办? 很明显,你陷入了困境. 抑或你所用的GUI工具不能完成你所需要的特殊的功能, 而你已经对这些开发工具有着很强的依赖, 你将不知道如何去完成前面的开发任务.
我一向的看法是,ASP初学者在掌握了书写ASP代码的基本功前,应该远远儿地离开那些GUI的开发工具. 换言之,就是用Notepad去写你的ASP代码! 你还可以看一篇我关于"纯天然"ASP代码的专门论述文章.在
www.xinqj.com
3.知道哪儿能找到你所需要的信息!
不管用何种程序设计语言来开发应用程序,一个重要的部分就是得知道该去哪儿找到你所需要的信息! 每个人在开发的过程中总会遇到这样那样的问题的(有些人遇到的麻烦更多些), 所以知道哪儿能找到你所需要的信息是势在必行的.
在国内关于ASP编程的书籍还不多,但你能在许多Internet站点上得到帮助,网上有许多站点象这个站点一样充满了有用的信息,我常去的几个讲ASP的站点是:www.xinqj.com 有问题请与新钱景网络工作室联系
4.采用明智的目录结构!
我常看到一些站点采用混乱的文件名和目录结构,文章用日期来命名,目录名不容易理解,让人不知道这目录里放的是甚麽文件. 如果你的文件名能描述这个文件是干啥的,你的目录名有明确的含义,这将对你站点的冲浪者和你都大有好处.
我们可以假设你建立了一个关于ASP的站点,其中有一部分内容是关于如何学习ASP的. 把有关学习ASP的scripts都放在一个叫/xinqj的目录下是相当明智的. 如果你有一个讨论数据库的文件,那么最好把这么文件命名为dbQuestions.asp. 现在,我们只要飞快地在目录间扫视一遍,马上就能明白/xinqj/dbQuestions.asp这个文件是讲甚麽内容的. 如果这个文件被命名为/webtech/222.shtml,你将不知所云. :)
5.让其他人来看看你的代码!
你是否曾被指派去看看其他人写的代码呢? 也许你会给这段代码加上一些新的特性,也许会改正一个错误. 你或许已经发现,去阅读和理解他人编写的代码是相当吃力的(如果他们的代码不是写得很好并没有良好的注释). 我发现,让他人来看看你的代码并确认他们能很容易地读懂它是个相当好的主意. (最好早些这么做,别等到你已经写完你的全部代码!)
而且让其他人来看看你的代码,你将从同事们的评论中知道你的文档是否完备而详细.
这样你还能交到些好朋友(或者是敌人,这取决于你的代码的可读性!). :)
ASP教程之Response对象的使用
ASP主要有五个内建(built-in)对象:Server、Request、Response、Application和Session。现在我们通过举例来对它们进行讲解。首先是最常使用的Response对象。
例1 利用Response在网页中输出HTML文档
<html>
<head>
<title>ASP示例1</title>
</head>
<body>
<%
Response.Write "<ul>"
Response.Write "<li>My name is Jack.</li>"
Response.Write "<li>I am from America.</li>"
Response.Write "<li>And I love China.</li>"
Response.Write "</ul>"
%>
</body>
</html>
您可以在FrontPage Editor,或是写字板、记事本等书写器中输入以上的代码,然后保存为Example1.asp即可,文件名可以用别的,但是扩展名(或后缀)必须是.asp。上例中使用了Response对象的"Write函数"向客户机的浏览器传送HTML代码,客户机上的浏览器将显示如下列表内容:
·My name is Jack.
·I am from America.
·And I love China.
其实,这些HTML代码都可以直接书写在ASP文件中,而不必用Response.Write来输出,一般情况下,变量或一些受到改变的数据等才使用Response.Write来输出。除此之外,我们还可以用来输出信息,它的作用与Response.Write是等价的。
例2 利用Response和在网页中输出由1加到100的计算结果
<html>
<head>
<title>ASP示例2</title>
</head>
<body>
<%
DIM sum '定义变量sum
DIM i??'定义循环变量i
sum=0
for i=1 to 100
?? sum=sum+i
next i
%>
<p>由1加到100</p>
<p>这是用Response.Write输出的结果:<%Response.Write sum%></p>
<p>这是另一种方法输出的结果:<%=sum%></p>
</body>
</html>
上边的例子都没有指明使用的是VB script脚本语言,那时因为ASP默认的就是VB script,您若想用Java script,可以在ASP的最上面一行中用语句
"<%@ LANGUAGE=Jscript%>"
指明。注意,在符号"@"与"LANGUAGE"之间必须有一个空格。指明后,您便可以随心所欲的使用Javascript了。对于例2,我们可用Javascript来完成。
例3 利用Javascript和在网页中输出由1加到100的计算结果
<html>
<head>
<title>ASP示例3</title>
<script language="Jscript" runat="server">
function Totle(){
var sum=0;
for(i=1;i<=100;i++){
sum=sum+i;
}//for
response.write(sum);
}//function
</script>
</head>
<body>
<p>由1加到100</p>
<p>这是用Javascript运行的结果:<%Totle()%></p>
</body>
</html>
本例中,我们使用了标志对,并且标明了使用Javascript脚本语言,与HTML文档不同的是,此标志对中的语句runat="server"标明了此脚本程序是在服务器端运行,而不是传送到客户机的浏览器以后再进行解释运行的。要证明这一点很简单,在浏览器中查看源文件代码,您将看不到
<script language="Jscript" runat="server">……</script>和<%……%>的代码部分
除了"Write"函数外,Response还有"End方法":Response.End。它用于结束网页的输出和服务器端脚本程序的运行。读者可以自己尝试使用这个"End方法"。好了,下一个教程我们将讲述ASP中功能强大的Request内建(built-in)对象。
我们在上面的文章讲述了Response对象,此对象的作用是把服务器的信息传送到客户机的浏览器上,而这次我们要讲的对象Request的作用恰好与Response的相反,它是在服务器中得到从客户机的浏览器所提交或上传的信息,此过程与Response相反。好,我们还是通过举例来了解Request对象的使用吧。
在下边的例子中,我们需要制作一个HTML文档Eng.htm和一个asp文档xinqj.asp,HTML文档中列出几行英文,当用户点击某一行英文后,HTML文档将向服务器索取xinqj.asp,xinqj.asp将运行服务器端脚本,并将此行英文的中文意思返回给客户机的浏览器。
例4 一个简单的"英译中"程序:Eng.htm和xinqj.asp
Eng.htm:
<html>
<head>
<title>ASP示例4—Eng.htm</title>
</head>
<body bgcolor="#FFFFFF">
<p><a href="xinqj.asp?answer=1">My name is am Jack.</a></p>
<p><a href="xinqj.asp?answer=2">I'm from America.</a></p>
<p><a href="xinqj.asp?answer=3">I love Chine.</a></p>
</body>
</html>
Chinese.asp:
<html>
<head>
<title>ASP示例4—xinqj.asp</title>
</head>
<body bgcolor="#FFFFFF">
<p>此句的中文是:</p>
<p><font color="blue">
<%if Request("answer")=1 thenResponse.Write "我的名字是杰克。"
end ifif Request("answer")=2 then
Response.Write "我来自美国。"end if
if Request("answer")=3 then
Response.Write "我爱中国。"
end if
%>
</font></p>
</body>
</html>
可以注意到,Eng.htm中的语句
<a href="Chinese.asp?answer=1">My name is am Jack.</a>
它是一个链接,但不是链上一个html文档,而是一个asp文档,在文件名后边紧跟着一个"?"这表示其后是上传的的参数,此例中只有一个上传参数answer,它的参数值等于1,如果有两个参数,则参数之间用"&"符号连结,例如:"Chinese.asp?answer=1&name=Jack"。点击链接以后,剩下的工作就由服务器来做了,服务器运行Chinese.asp,在Chinese.asp中通过if语句判断上传的参数answer的值,再根据只来输出翻译过来的中文意思,而获得上传的参数值正是Request对象的工作,Request("answer")将获得参数answer的值。接着,服务器再用Response对象的"Write函数"将中文意思传送给客户机的浏览器。
下边我们再看一例,此例也用了一个html文档Ques.htm和一个asp文档Answer.asp,用户在html文档的两个文本框中各输入一个整数,然后按"提交"按钮,服务器将计算两个整数相加的结果,然后返回给客户机的浏览器。此例与上例有所不同,读者可以细心体会。
例5 计算两个整数相加的和
Ques.htm:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>ASP示例5—Ques.htm</title>
<meta name="GENERATOR" content="Microsoft FrontPage 3.0">
</head>
<body bgcolor="#FFFFFF">
<form method="POST" action="Answer.asp">
<p>请输入相加的两个整数,然后按“提交”:</p>
<p><input type="text" name="num1" size="5">+<input type="text" name="num2" size="5"></p>
<p><input type="submit" value="提交" name="B1"></p>
</form>
</body>
</html>
Answer.asp:
<html>
<head>
<title>ASP示例5—Answer.asp</title>
</head>
<body bgcolor="#FFFFFF">
<%
DIM n1,n2,sum
n1=Request("num1")
n1=CInt(n1)
n2=Request("num2")
|