ASP编程入门进阶(三):接触脚本程序
2018-09-06 12:21
有了前面的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() msgboxwelcome you! end sub sub window_onunload() msgboxsee 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 函数从字符串中返回数组。
[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出一个表单检测的程序
[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等
反正程序这东西是代替我们少做了许多重复单一无聊的事——只要你合理利用程序。
应该有些成就吧,学语言,学编程就是学语法语义,学编程架构思想。
当然这要你有扎实的本语言的基础,基础是什么?你知道哪些函数吗?你知道怎么用程序怎么判断偶数吗(包含了运算)?你知道如何进行表单检测吗?你知道哪三种程序架构吗?
函数参看:
呵呵,把以上的程序吃透,最好再多看看脚本参考手册,跟我就可以开始ASP的上路了。
补:
Function过程与Sub过程类似,但是Function过程可以返回值。
Function过程也可以使用由调用过程传递的常数、变量或表达式作为参数。如果Function过程无任何参数,则Function语句必须包含括号()。
Function过程通过函数名返回一个值,这个值是在过程的语句中赋给函数名。Function返回值的数据类型总是Variant。
上一篇:ASP获取客户端MAC地址
下一篇:asp学习日记