ASP网页设计vbscript和javascript相互挪用
缺乏可以共同遵循的行业标准,ASP还处在发展初期,大家对它的理解不同,如产品和服务标准,收费标准等,不利于行业的健康发展。vbscriptVBScript和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(),则能够声明以下自界说函数:
<SCRIPTLANGUAGE="VBSCRIPT"RUNAT="SERVER">
FunctionFormatValue(Value)
FormatValue=FormatCurrency(Value)
EndFunction
</SCRIPT>
接上去在JScript代码中就能够象一般JScript函数一样挪用FormatValue()了。用相似的办法也能够完成VBScript代码挪用JScript函数。
使用一样的划定规矩,我们能够在任何剧本内挪用任何用户界说函数。不外,从JScript剧本内挪用一个不带参数的VBScript历程(Sub)时应略加注重,此时在JScript中应当象挪用一个不带参数的JScript函数一样挪用它,如用foo()挪用VBScriptSubfoo历程。
3、数据共享
在某些情况下夹杂使用VBScript和JScript函数长短常有效的,但在分歧言语剧本之间共享数据也大概很有效。完成这类共享的办法很复杂:不论利用的是甚么言语,只需是在页面级声明的变量就能够恣意援用。
工具的利用办法也类似,能够恣意选用符合的言语读取、修正属性或挪用工具的办法。固然给定工具的属性和办法是由创立该工具实例的言语所界说的。正如上例VBScript的历程挪用,当从JScript中挪用一个不带参数的VBScript工具的办法时,其挪用办法也服从JScript的挪用划定规矩,反之亦然。
4、数组办理
数组共享成绩略微庞大一点。固然数组也象别的变量一样能够在分歧言语剧本之间共享,但必需注重兼容方面的成绩。
VBScript数组在JScript下能够用VBScript的标记援用,即用myArray(2)援用数组元素而不是JScript的数组元素援用标记myArray。别的,还可使用一个特别的JScript工具――VBArray工具将VBScript数组转换为JScript数组。上面的代码从VBScript数组myVBArray创立JScript数组myJSArray:
varTemp=newVBArray(myVBArray)
varmyJSArray
myJSArray=Temp.toArray()
上述代码起首创立一个一时的VBArray工具,然后利用它的toArray()办法将本人转换为JScript数组。今后就能够象一般JScript数组一样利用myJSArray,如myJSArray。但应该注重的是,toArray()办法将把一个多维的VBArray转换为一维的JScript数组。
从VBScript中援用JScript数组更加庞大。固然在VBScript中我们能够间接会见JScript数组相干的办法和属性,但没有间接会见JScript数组的单个元素的办法。也就是说,我们能够在VBScript剧本中读取JScript数组的长度属性,以下所示:
x=myJSArray.length
但没法间接读取该数组的单个元素,上面的VBScript代码是不准确的:
x=myJSArray(3)
办理该成绩的一个可行的办法是实行一个转换历程,以下面的代码所示,此处假定VBScript是缺省的剧本言语:
<%
DimTemp
DimmyVBArray
Temp=myJSArray.join(",")
myVBArray=Split(Temp,",")
%>
此处的JScriptjoin()办法将数组myJSArray元素转换到一个以逗号为支解符的字符串,VBScriptSplit()函数将字符串转换为VBScript数组。注重这里我们是在VBScript情况下挪用JScript的join办法。按照此例,我们能够经由过程自界说VBScript函数来摹拟JScript的VBArray工具的toArray()办法以完成JScript数组到VBScript数组的转换。
、小结
在统一个ASP工程内天真选用分歧剧本言语具有很多长处,这些剧本之间的交互才能更加开辟者集成分歧言语所供应的内置函数和别的功效带来了更多的时机,同时也使得完成既可用于VBScript也可用于JScript情况的通用剧本库成为大概。</p>对用户来说可预见费用、节约费用,可以做到花少钱办大事。由于省去了购买软件和硬件等的前期费用,用户可以租用较高级的应用软件。ASP的收费是根据软件的类型、客制化程度、用户数量、服务期限来定的,对客户来说这笔费用是可以预见的。方便于客户应用软件的升级。 你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。 Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名") 你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。 交流是必要的,不管是生活还是学习我们都要试着去交流,通过交流我们可以学到很多我们自己本身所没有的知识,可以分享别人的经验甚至经历。 Application:这个存储服务端的数据,如果不清除,会直到web应用程序结束才清除(例如重启站点) 代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。 Session:这个存储跟客户端会话过程的数据,默认20分钟失效 我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。 封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。
页:
[1]