|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
由于ASP还是一种Script语言所没除了大量使用组件外,没有办法提高其工作效率。它必须面对即时编绎的时间考验,同时我们还不知其背后的组件会是一个什么样的状况; 好一门编程言语有两个前提是必不成少的,一是实际与理论联合,在实践例程去验证书本上的实际能加深你对实际的了解;二是学会总结,把进修、应用中的心得体味记上去,当做一种经历或经验加以提炼并在往后的使用中加以改善,必定能进步你对这门编程言语的熟悉。以下是笔者在进修与应用ASP编程中的两点经历,但愿能对人人有所匡助。
ASP页面内VBScript和JScript的交互
ASP具有办理分歧言语剧本法式的才能,可以主动挪用适合的剧本引擎以注释剧本代码和履行内置函数。ASP开辟情况供应了两种剧本引擎,即VBScript(缺省)和JScript。不外,开辟者并没有被限制于只能利用这两种言语,只需可以供应适合的ActiveX剧本引擎就可以利用任何剧本言语。
剧本言语的选择常常基于很多分歧缘由:它多是开辟者最为熟习的言语,多是对给定工程来讲可以供应最多特征撑持的,也有多是最具效力的。分歧的情况和请求使得咱们在选择剧本言语时重视分歧的要素,同时也使得咱们在某些时分面对选定的剧本言语不克不及直接供应其它言语固有的函数这一成绩,或某个剧本已写成但用的倒是别的一种剧本言语。
此时应当怎样办?是不是需求用以后所用的剧本言语重写这些剧本?或说,是不是有能够在一种剧本言语中挪用其它剧本言语的内置函数?本文要申明的就是在ASP使用中若何让VBScript剧本和JScript剧本交互以最大限制地取得两种剧本言语的特征撑持。
1、VBScript和JScript的内置函数
在VBScript和JScript中,有大批的内置函数功效是不异或相似的。但是,在一种剧本言语中内置的函数并不是老是在别的一种剧本言语中也有对应的函数。例如,VBScript供应了很多用于操作字符串和格局化数据的函数,这些函数在JScript中其实不存在。这些函数包含StrReverse()、Filter()和FormatCurrency()等。在另外一方面,JScript所供应的用于办理数组、字符串编码等的函数在VBScript中也没有界说,如join()、reverse()、pow()、位操作、escape()和unescape()等。
那末,假如在JScript法式中需求一个VBscript函数该怎样办呢?
2、异种剧本的相互挪用
假如需求在JScript剧本中挪用一个VBScript中内置的函数,则应当写一个VBScript用户界说函数(在这里挪用VBScript内置函数),然后在JScript剧本中象挪用公用JScript函数一样挪用这个用户界说函数。
例如,假如要挪用的VBSCript内置函数是FormatCurrency(),则可以声明以下自界说函数:
< SCRIPT LANGUAGE="VBSCRIPT" RUNAT="SERVER">
Function FormatValue(Value)
FormatValue = FormatCurrency(Value)
End Function
< /SCRIPT>
接上去在JScript代码中就能够象通俗JScript函数一样挪用FormatValue()了。用相似的办法也能够完成VBScript代码挪用JScript函数。
使用一样的划定规矩,咱们可以在任何剧本内挪用任何用户界说函数。不外,从JScript剧本内挪用一个不带参数的VBScript进程(Sub)时应略加注重,此时在JScript中应当象挪用一个不带参数的JScript函数一样挪用它,如用foo()挪用VBScript Sub foo进程。
3、数据同享
在某些情况下夹杂应用VBScript和JScript函数长短常有效的,但在分歧言语剧本之间同享数据也能够很有效。完成这类同享的办法很复杂:不论利用的是甚么言语,只需是在页面级声明的变量就能够恣意援用。
对象的利用办法也类似,可以恣意选用适合的言语读取、修正属性或挪用对象的办法。固然给定对象的属性和办法是由创立该对象实例的言语所界说的。正如上例VBScript的进程挪用,当从JScript中挪用一个不带参数的VBScript对象的办法时,其挪用办法也服从JScript的挪用划定规矩,反之亦然。
4、数组办理
数组同享成绩略微庞杂一点。固然数组也象其它变量一样可以在分歧言语剧本之间同享,但必需注重兼容方面的成绩。
VBScript数组在JScript下可以用VBScript的符号援用,即用myArray(2)援用数组元素而不是JScript的数组元素援用符号myArray[2]。另外,还可使用一个特别的JScript对象――VBArray对象将VBScript数组转换为JScript数组。上面的代码从VBScript数组myVBArray创立JScript数组myJSArray:
var Temp = new VBArray(myVBArray)
var myJSArray
myJSArray = Temp.toArray()
上述代码起首创立一个一时的VBArray对象,然后利用它的toArray()办法将本人转换为JScript数组。尔后就能够象通俗JScript数组一样利用myJSArray,如myJSArray[1]。但应该注重的是,toArray()办法将把一个多维的VBArray转换为一维的JScript数组。
从VBScript中援用JScript数组更加庞杂。固然在VBScript中咱们可以直接会见JScript数组相干的办法和属性,但没有直接会见JScript数组的单个元素的办法。也就是说,咱们可以在VBScript剧本中读取JScript数组的长度属性,以下所示:
x = myJSArray.length
但没法直接读取该数组的单个元素,上面的VBScript代码是不准确的:
x = myJSArray(3)
处理该成绩的一个可行的办法是履行一个转换进程,以下面的代码所示,此处假定VBScript是缺省的剧本言语:
< %
Dim Temp
Dim myVBArray
Temp = myJSArray.join(", ")
myVBArray = Split(Temp, ", ")
%>
此处的JScript join()办法将数组myJSArray元素转换到一个以逗号为朋分符的字符串,VBScript Split()函数将字符串转换为VBScript数组。注重这里咱们是在VBScript情况下挪用JScript的join办法。按照此例,咱们可以经由过程自界说VBScript函数来摹拟JScript的VBArray对象的toArray()办法以完成JScript数组到VBScript数组的转换。
用模板创立静态ASP页
关于模板,我想人人能够都有一些概念,在word中良多模板,设计好了也许的版面,你只需用你本人的话填充那些占位字符就行了。这儿的模板也许也就是这个意思,页面中绝对不乱的局部固定上去,其他的局部根分歧的情形在输出分歧的内容。其其实Dreamweaver中也有模板的功效,不外谁人静态的,只妙手动填充内容,而这儿讲的是静态的主动的内容填充。
起首,我先来注释一下为何要用到模板文件。有时分,模板可以带给你对网页功效和结构更加完全的概念。当你看到Word的模板格局以后,就晓得最初版面是个甚么模样的了,在这儿也是如斯。例如,你可以保存ASP语句,而利用分歧的模板来创立分歧的页面作风。
如许,你就不必为每种分歧作风的网页分离来写分歧的ASP页面了,这明显可觉得咱们节俭良多工夫和精神。并且,模板文件可以让你更轻易的阅读页面代码,不必忧虑ASP和HTML的混同弄的你头昏眼花。你可以只用把注重力集中在HTML上,而完整不必去管ASP了。再有就是,摸板很复杂,你相对很快就可以弄懂弄定。在这篇文章中,将会用到一个数据库――一个用的很普遍的雇员表。包含雇员ID,姓名,照片,和任务摘要和照片的注脚。上面是这个Access数据库的布局:
文件名 - myDatabase.mdb
表名 - Employees
ID
主动计数(Autonumber)
FullName
文本 - 最多100个字符
PicURL
文本 - 最多255个字符
Duties
正文类型
PicCaption
文本 - 最多50个字符
一个很复杂的数据库,是吧。固然你可以按请求来扩大它,那就是你本人的事了。我假定你已懂得数据库的根基操作,如许我不必在这下面花太多的文字,其实这儿的代码都是很复杂的,只需你晓得一些根基的器材,就可以把它看懂。创立了数据库以后,咱们可以入手下手创立模板文件了。这个文件是每一个页面的骨架。我没有效到表格,那样有些费事,而我很懒,并且,也不必到场,标签,由于那是要加在ASP页面中的。所以到最初,它的模样就是如许了:
Full Name:
%name% < br>Description of duties:
%duties%
This picture was taken: %date%
Employee ID: %empID%
就是如许了!这就是一个复杂的模板。把它存为template.tmp,在前面的ASP页面中将要援用到它。要注重的是:咱们可以在模板中到场各类HTML标签,你完整可以在摸版中界说好网页的布局和款式,就像实践写一个网页一样,只是要把关头的中央标出来――注重到了那些%围着的器材了吗?那就是模板的精华了。也许你已注重到,那些%围着的是和数据库中的字段意义对应的。看看上面的ASP代码,是若何读入模板和数据库文件,把他们揉和在一同,然后输入咱们想要的HTML页面。
这就是一切的代码了,很复杂,不是吗?它所作的只是翻开模板文件,按按次读入每行,然后用冲数据库中读入的实践的字段值来取代模版中那些%img%,%name%标志。并且,它还把在“Duties”字段内大段文本中的回车注释成HTML的回车 ,如许就不至于打乱全部的排版格局了。怎样?轻松弄定吧。模板在某些使用上真的是可以发扬奇效,省时省力。实际上,你还可以修正这段代码,用FileSystemObject来读写文本,如许数据就纷歧定要存储在数据库中了。在一些使用中,好比即时的旧事宣布,如许或许更加便利一些。
asp,jsp,php是web开发的三大技术,asp简单易用且有microsoft做靠山,jsp功能强大是因为有java支持,php则开源跨平台.在国内,asp应用范围最广,jsp发展势头最猛,php则处于劣势.这可能与公司的支持以及技术的培训有关. |
|