马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
结论:和PHP一样,ASP简单而易于维护,很适合小型网站应用,通过DCOM和MTS技术,ASP甚至还可以完成小规模的企业应用,但ASP的致命缺点就是不支持跨平台的系统,在大型项目开发和维护上非常困难。js|jscript|vbscript|页面ASP页面内VBScript和JScript(神仙掌事情室・CPCW)
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[2]。别的,还可使用一个特别的JScript工具――VBArray工具将VBScript数组转换为JScript数组。上面的代码从VBScript数组myVBArray创立JScript数组myJSArray:
varTemp=newVBArray(myVBArray)
varmyJSArray
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是缺省的剧本言语:
<%
DimTemp
DimmyVBArray
Temp=myJSArray.join(",")
myVBArray=Split(Temp,",")
%>
此处的JScriptjoin()办法将数组myJSArray元素转换到一个以逗号为支解符的字符串,VBScriptSplit()函数将字符串转换为VBScript数组。注重这里我们是在VBScript情况下挪用JScript的join办法。按照此例,我们能够经由过程自界说VBScript函数来摹拟JScript的VBArray工具的toArray()办法以完成JScript数组到VBScript数组的转换。
5、小结
在统一个ASP工程内天真选用分歧剧本言语具有很多长处,这些剧本之间的交互才能更加开辟者集成分歧言语所供应的内置函数和别的功效带来了更多的时机,同时也使得完成既可用于VBScript也可用于JScript情况的通用剧本库成为大概。
</p>由于ASP提供的是一对多的服务,所以用户的一些特殊需求很难得到满足。 |