ASP编程入门进阶(三):接触脚本程序

有了前面的html中关于form的强化知识,是不是在想,下面就可以开始ASP之旅呢?未必。
一般系统学过ASP的编程人员都会切身体会到:在系统学习ASP的内置对象和内置组件之前,学会脚本语言永远是至关重要的。
为什么这么说呢?为什么要学脚本语言呢?ASP和脚本语言又有什么关系呢?

首先说说ASP是贵为何物吧。ASP是Microsoft Active Server Pages的简称,它是一种服务器端脚本环境,可用来创建交互式 Web 页并建立强大的 Web 应用程序。可以表明ASP是一种基于服务器端的脚本环境,那就明白ASP为什么需要IIS支持了,因为IIS即为常用的一类web服务器;那也就明白为什么要学脚本语言了,因为ASP提供的是一种脚本环境。

再次需要说明的是,ASP只是一种环境,而非一种语言。如果真要形象化地说是ASP是网络编程语言的话,那也是属于一个html+脚本+asp提供的内置对象及组件的功能强大的混合语言。

所以,学点脚本非常重要!其实无论是学脚本语言,还是其它语言,我认为首先需要了解的是该语言涵盖的各类特性,包括:数据类型、事件、方法、 对象、属性、语法等当然这都是些空谈,正如在大学课堂上的某计算机语言课一样,搞纯研究性的就是觉得有些索而无味。还是实用些的好,能解决问题的程序才是好程序(印证能逮到老鼠的猫就是好猫的经典圣语,呵呵)

当然,语言这东西还是要你去好好钻研的,比如你写求绝对值的程序,其实一个abs()函数就搞定了。再比如你会vb脚本,但把同样程序替换成java脚本就会出错,它们的数据类型不同,语句语法也不一样啊。正如说中文和外文一样,要会发音标(数据类型),会如何发音(方法),如何说成一句话(语法)……呵呵,有点让你难受吧。行!直接了当。你以后需要注意的是语言的函数、语法。当然也不是让你全看,按照教程中的遇到一个掌握一个。教程学完,差不多也结束了。呵呵,你要相信我。

目前有两种主要的脚本语言:VbScript和JavaScript。因为VbScript作为IIS默认的服务器脚本,所以我们所谈所学的基本是围绕VbScript为脚本的ASP的,当然也不排除有的时候使用javascript.

举一个很简单的例子:

<script language="vbscript">
<!--
sub button1_onclick
msgbox (" 欢迎使用vbscript! " )
end sub
-->
</script>

<script language="javascript">
<!--
function b213()
{
alert("欢迎使用javascript!")

}
-->
</script>
<form>
<input type="button" name="button1" value="vbs"><br>
<input type="button" name="button2" value="js" onclick="b213()">
</form>
vbscript中的Sub 就是一个事件过程。过程名包含两部分:一部分为按钮名,即 Button1(从 < INPUT > 标记中的 NAME 属性获取);另一部分为事件名,即 OnClick。两部分由下划线 (_) 连接。单击按钮时,Internet Explorer 查找并运行相应的事件过程,即 Button1_OnClick,而MsgBox 就是一个函数,对于它更具体的参数,你就好好看下了。

[Ctrl+A 全部选择进行拷贝 提示:可先修改部分代码,再点击运行]

一时来劲,可能大家都看到网上有种狂恶心的对话框组,原理是什么呢?请看:

<script language="vbscript">
msgbox"你知道你会点确定的。。。。。。。"
msgbox"不点也要点。。。。。。。。"
msgbox"没办法是吧。。。。。。。。。。?"
msgbox"要不网页打不开啊。。。。。。"
msgbox"这招损人吧。。。。。。。。。"
msgbox"真想揍揍站长。。。。。。。。。"
</script>
其实站长用这些玩弄别人的时候,先玩弄了自己:因为这都是他想出来的啊:)
呵呵,我没有损大家的意思,只是为了学习。

[Ctrl+A 全部选择进行拷贝 提示:可先修改部分代码,再点击运行]

在来个开页和退页弹出对话框的原理吧
<script language="vbscript">
<!--
sub window_onload()
msgbox"welcome you!"
end sub
sub window_onunload()
msgbox"see you late!"
end sub
-->
</script>
开页显示“welcome you!”,关页显示“see you late!”

[Ctrl+A 全部选择进行拷贝 提示:可先修改部分代码,再点击运行]

以上只是一个显示对话框msgbox,当然还有书写对话框inputbox也顺便看下吧。

<script language="vbscript">
<!--
dim strname
strname=inputbox("enter your name please:","enter your name","cnbruce")
document.write(strname&",welcome you!<p>")
-->
</script>
有关inputbox的想关参数也去看看吧。

[Ctrl+A 全部选择进行拷贝 提示:可先修改部分代码,再点击运行]

再来看看几个实用的函数:
len():返回字符串长度或者变量的字节长度 
lef():截取一个字符串的前部分内容
right():截取一个字符串的后部分内容
<script language=vbs>
text="1234567890abcdefgh"
i=10

lentext=len(text)
lefttext=left(text,i)
righttext=right(text,i)

alert ("文本长度是:"&lentext)
alert ("文本左取"&i&" 得的是:"&lefttext)
alert ("文本右取"&i&" 得的是:"&righttext)
</script>

[Ctrl+A 全部选择进行拷贝 提示:可先修改部分代码,再点击运行]

根据这几个,经常看到的长文章后面加“......”的情况就是如下:

<script language=vbs>
text="123 4567 8fds90 abcde fghxcfv"
i=10
if len(text)>i then '如果文本长度大于给定的值
text=left(text,i) '则提取前段的i位的字符串
alert (text&"...")
else
alert (text)
end if
</script>

[Ctrl+A 全部选择进行拷贝 提示:可先修改部分代码,再点击运行]

还有个比较重要的函数replace()
在字符串中查找,替代指定的字符串
replace(strtobesearched,strsearchfor,strreplacewith)
strtobesearched是字符串; strsearchfor是被查找的子字符串;strreplacewith 是用来替代的子字符串。
下面的一个就是很有用的文字转换程序
<script language=vbs>
text="妈的,我操"

text=replace(text,"妈的","MD")
text=replace(text,"操","CAO")
alert (text)

</script>

[Ctrl+A 全部选择进行拷贝 提示:可先修改部分代码,再点击运行]

经常在发送EMAIL时,添加多个地址,中间采用“;”号进行分隔,那具体怎么分解接受过来的多个EMAIL地址呢?采用Split函数:Split 函数从字符串中返回数组。
<script language=vbs>
cnbruce="cnbruce@126.com;cnbruce@it365cn.com;root@cnbruce.com"
MyArray = Split(cnbruce, ";")
a=MyArray(0)
b=MyArray(1)
c=MyArray(2)
alert(a)
alert(b)
alert(c)
</script>

[Ctrl+A 全部选择进行拷贝 提示:可先修改部分代码,再点击运行]

这些都是比较现实较好玩的些,玩中学习也不错:)但毕竟我们是要编程的,说到编写程序,我知道程序结构可以分:
1,顺序结构:就是最普通的,从上往下,从左往右执行的程序
2,选择结构:给你两个条件,要不这样(if ... then),要不那样(else),任君选择:)
3,循环结构:给你一个最大发挥的空间,在不超出这个范围内进行活动(循环),否则自动退出(跳出循环)。
再复杂的程序也无非是由这三种结构综合嵌套运用过来的,你说是吧。

顺序结构没多少要说,因为程序执行基本都是这方向。
来看看选择结构,当然选择结构也可以嵌套。

<body>
hello,
<script language="vbscript">
<!--
dim thishour
thishour=hour(time)
if thishour<=12 then
document.bgcolor="red"
document.fgcolor="black"
document.write("上午好!")
else
if thishour<=18 then
document.bgcolor="blue"
document.fgcolor="white"
document.write("下午好!")
else
document.bgcolor="green"
document.fgcolor="yellow"
document.write("晚上好!")
end if
end if
-->
</script>
本页的作用是根据不同时间显示不同颜色和欢迎信息。
</body>

[Ctrl+A 全部选择进行拷贝 提示:可先修改部分代码,再点击运行]

以上程序很简单吧,只要能认识英文就会懂程序(我是这么理解的:)
先把现在的小时提交出来:hour(time);
然后和12比较判断,如果<=12,肯定是上午了,否则就是下午和晚上;
否则里面继续条件判断,如果时间再<=18的话,那肯定就是下午了;
最后,不用说,瞎子猜猜也知道是晚上了:)

有关上一程序中的document.bgcolor就是文档的背景色,document.fgcolor就是文档的前景色(文字色),下一程序是动态改变背景颜色的。

<script language="vbscript">
<!--
sub setbgcolor(bcolor)
document.bgcolor=bcolor
end sub
-->
</script>
<form>
<input type="radio" name="color" onclick=setbgcolor("red")>red<br>
<input type="radio" name="color" onclick=setbgcolor("green")>green<br>
<input type="radio" name="color" onclick=setbgcolor("blue")>blue<br>
<input type="radio" name="color" onclick=setbgcolor("yellow")>yellow<br>
<input type="radio" name="color" onclick=setbgcolor("gray")>gray<br>
</form>

[Ctrl+A 全部选择进行拷贝 提示:可先修改部分代码,再点击运行]

有关条件选择结构的嵌套再show出一个表单检测的程序

<html><head><title>abc</title>
<script language="vbscript">
<!--
sub btnsubmit_onclick
if form1.name.value<>"" then
if form1.addr.value<>"" then
if form1.email.value<>"" then
if instr(form1.email.value,"@")<>0 and instr(form1.email.value,".")<>0 then
form1.submit
else
alert"email error!"
end if
else
alert "enter your email!"
form1.elements("email").focus
end if
else
alert "enter your address!"
form1.elements("addr").focus
end if
else
msgbox "enter your name please!"
form1.elements("name").focus
end if
end sub
-->
</script>
</head>
<body>
<form name="form1" method=post action="bug.html">
your name:<input type="text" name="name"><br>
your addr:<input type="text" name="addr"><br>
your email:<input type="text" name="email"><br>
<input type="button" name="btnsubmit" value="submit">
</form>
</body>
</html>

[Ctrl+A 全部选择进行拷贝 提示:可先修改部分代码,再点击运行]

程序是给出来了,但看起来比较难懂,有时程序执行时间也比较重要,所以得精简程序代码。
正所谓:写程序容易,写经典程序难啊,那上面的程序还可以换种思维方式。改用javascript(注:学的是编程思想,不要太过计较脚本类型)

<html><head><title>abc</title>
<script language="javascript">
<!--
function form1_onsubmit()
{
if (document.form1.name.value=="")
{
alert("请设定您的登陆名。")
document.form1.name.focus()
return false
}
else if(document.form1.addr.value=="")
{
alert("请填写您的地址。")
document.form1.addr.focus()
return false
}
else if(document.form1.email.value=="")
{
alert("请填写您的E-Mail地址。")
document.form1.email.focus()
return false
}
}
-->
</script>
</head>
<body>
<form name="form1" onsubmit="return form1_onsubmit()">
your name:<input type="text" name="name"><br>
your addr:<input type="text" name="addr"><br>
your email:<input type="text" name="email"><br>
<input type="submit" name="submit" value="submit">
</form>
</body>
</html>

[Ctrl+A 全部选择进行拷贝 提示:可先修改部分代码,再点击运行]

最后来看下循环结构吧:1到500可不是一个一个写出来的。

<script language=vbs>
for i= 1 to 500
document.write(i&"<br>")
next
</script>

[Ctrl+A 全部选择进行拷贝 提示:可先修改部分代码,再点击运行]

当然循环不只可以用for,还可以用do while...loop等
反正程序这东西是代替我们少做了许多重复单一无聊的事——只要你合理利用程序。

应该有些成就吧,学语言,学编程就是学语法语义,学编程架构思想。
当然这要你有扎实的本语言的基础,基础是什么?你知道哪些函数吗?你知道怎么用程序怎么判断偶数吗(包含了运算)?你知道如何进行表单检测吗?你知道哪三种程序架构吗?

函数参看:
http://www.cnbruce.com/blog/showlog.asp?cat_id=26&log_id=245

呵呵,把以上的程序吃透,最好再多看看脚本参考手册,跟我就可以开始ASP的上路了。

补:

Function过程与Sub过程类似,但是Function过程可以返回值。
Function过程也可以使用由调用过程传递的常数、变量或表达式作为参数。如果Function过程无任何参数,则Function语句必须包含括号()。
Function过程通过函数名返回一个值,这个值是在过程的语句中赋给函数名。Function返回值的数据类型总是Variant。

(0)

相关推荐

  • ASP编程入门进阶(一):安装配置服务器

    本人的水平有限,难免有疏忽遗漏之处,还望大家批评指正,在此先谢过. ASP编程入门进阶(一):安装配置服务器 鉴于ASP脚本语言是在服务器端IIS或PWS中解释和运行,并可动态生成普通的HTML网页,然后再传送到客户端供浏览的这一特点.我们要在本机上进行调试,那就要求我们的个人电脑具有服务器的功能. 不要看到"服务器"三个字就感到担心:我的机子配置这么底,性能这么差,是不是不能配啊.放心!配个服务器,就是多装个软件,况且就自己一个人用,根本没有必要多虑.那具体的装个什么软件呢?刚才我们

  • ASP编程入门进阶(十三):Ad & Content Rotator

    ASP的强大不仅仅局限于接受和显示的交互,更多的是运用ActiveX 组件进行更强大的Web应用. 那究竟ActiveX组件为何物?它又是如何运作的呢?其实ActiveX Server Components(ActiveX 服务器组件)是一个存在于 WEB 服务器上的文件,该文件包含执行某项或一组任务的代码,组件可以执行公用任务,这样就不必自己去创建执行这些任务的代码.很形象的一句话:运用组件直接采用别人经典的功能强大的程序.只不过这程序已被封装了的. 那具体ActiveX组件是如何产生.如何得

  • ASP编程入门进阶(十四):Browser & Linking

    一.Browser Capabilities组件 该组件最主要的作用是:提取识别客户端浏览器的版本信息. 其原理是这样的:当客户端浏览器向服务器发送页面请求时,同时会自动发送一个User Agent HTTP标题,而该标题是一个声明浏览器及其版本的 ASCII 字符串.而Browser Capabilities组件就将User Agent映射到在文件Browscap.ini中所注明的浏览器 , 并通过BrowserType对象的属性来识别客户浏览器. 若该对象在 browscap.ini 文件中

  • ASP编程入门进阶(三):接触脚本程序

    有了前面的html中关于form的强化知识,是不是在想,下面就可以开始ASP之旅呢?未必.一般系统学过ASP的编程人员都会切身体会到:在系统学习ASP的内置对象和内置组件之前,学会脚本语言永远是至关重要的.为什么这么说呢?为什么要学脚本语言呢?ASP和脚本语言又有什么关系呢? 首先说说ASP是贵为何物吧.ASP是Microsoft Active Server Pages的简称,它是一种服务器端脚本环境,可用来创建交互式 Web 页并建立强大的 Web 应用程序.可以表明ASP是一种基于服务器端的

  • ASP编程入门进阶(七):内置对象Server

    Server 对象提供对服务器上的方法和属性的访问 , 其中大多数方法和属性是作为实用程序的功能服务.(IIS HELP翻译)有了 Server 对象,你就可以在服务器上启动 ActiveX 对象例程,并使用 Active Server 服务提供象 HTML 和 URL 编码这样的函数.一,Script.ScriptTimeout在脚本运行超过一段时间之后,即作超时处理.服务器一般的默认脚本运行时间是90秒.你可以从"Internet信息服务"中"默认Web站点"的

  • ASP编程入门进阶(五):内置对象Response

    通过对Request对象的学习,可以了解到,Request对象是服务器端用来获取客户端的信息的.但作为服务器和客户端进行交互,是不是还缺少服务器端向客户端发送信息呢?对象Response正是担任此责任.负责将信息传递给用户的对象就是Response了,它可动态地响应客户端的请求,并将动态生成的响应结果返回给客户端浏览器.一,Response.write在Response中write方法是使用最频繁的一个了,write就是写:将指定的字符串写到当前的 HTTP 输出. 1,write.asp <%

  • ASP编程入门进阶(十一):Chat聊天程序

    通常的聊天室所采用的程序,也就是Chat程序了,其基本结构原理是不会采用到数据库的.那究竟采用什么技术呢?我们知道ASP变量当中Session变量的作用是记录单个用户的信息,并且能跟踪用户的行为:Application对象的作用则起的全局变量,可以实现站点多个用户之间在页面中共享信息的. 那可以想象,在针对当前聊天程序中,一个聊天成员即为一个Session变量,聊天成员之间的会话则当成Application变量进行共享显示,以使各成员都能看见. 那下面就采用一很经典的实例程序,进行了解和分析.

  • ASP编程入门进阶(十):Global.asa文件

    我们已经知道Application和Session对象的OnStart.OnEnd事件的脚本,都必须是在 Global.asa 文件中声明的.那究竟Global.asa是什么样的一个文件?它的作用有何?又该如何运用呢?且听我慢慢道来. 首先.asa是文件后缀名,它是Active Server Application的首字母缩写.Global.asa文件可以管理在ASP应用中两个非常苛刻的对象:Application.Session. 它其实是一个可选文件,程序编写者可以在该文件中指定事件脚本,并

  • ASP编程入门进阶(二十):ADO组件之插入数据记录

    简单的显示记录已经掌握,现在需要的就是通过ASP将信息内容插入到数据库中. 一.拥有数据库cnbruce.mdb 本数据库的作用就是用来被插入数据的,可以直接采用上节中已经建立的cnbruce.mdb文件,当然连接打开数据库的文件conn.asp也就顺利引用了. 二.建立输入插入信息的页面平台addit.html 本页的主要作用是:显示一些文本输入框以用来提供输入信息内容提交数据库. 1,addit.html<form action="addit.asp" method=&quo

  • ASP编程入门进阶(十二):ASP技巧累加(一)

    一.On Error 语句该语句的作用是:启用或禁用错误处理程序.一般用法如下: On Error Resume NextOn Error GoTo 0 如果在您的代码中未使用On Error Resume Next语句,所发生的运行时错误将显示错误信息,同时,代码的执行也随之终止. 但当你采用它时,就会使程序按照产生错误的语句之后的语句继续执行,或是按照最近一次所调用的过程(该过程含有 On Error Resume Next 语句)中的语句继续运行.这个语句可以不顾运行时错误,继续执行程序,

随机推荐