學(xué)好一門編程語(yǔ)言有兩個(gè)條件是必不可少的,一是理論與實(shí)踐結(jié)合。在實(shí)際例程去驗(yàn)證書本上的理論能加深你對(duì)理論的理解;二是學(xué)會(huì)總結(jié),把學(xué)習(xí)、運(yùn)用中的心得體會(huì)記下來(lái),當(dāng)成一種經(jīng)驗(yàn)或者教訓(xùn)加以提煉并在日后的應(yīng)用中加以改進(jìn),一定能提高你對(duì)這門編程語(yǔ)言的認(rèn)識(shí)。以下是筆者在學(xué)習(xí)與運(yùn)用ASP編程中的兩點(diǎn)經(jīng)驗(yàn),希望能對(duì)大家有所幫助。
ASP頁(yè)面內(nèi)VBScript和JScript的交互
ASP具備管理不同語(yǔ)言腳本程序的能力,能夠自動(dòng)調(diào)用合適的腳本引擎以解釋腳本代碼和執(zhí)行內(nèi)置函數(shù)。ASP開(kāi)發(fā)環(huán)境提供了兩種腳本引擎,即VBScript(缺?。┖蚃Script。不過(guò),開(kāi)發(fā)者并沒(méi)有被限制于只能使用這兩種語(yǔ)言,只要能夠提供合適的ActiveX腳本引擎就能使用任何腳本語(yǔ)言。
腳本語(yǔ)言的選擇往往基于許多不同原因:它可能是開(kāi)發(fā)者最為熟悉的語(yǔ)言,可能是對(duì)給定工程來(lái)說(shuō)能夠提供最多特色支持的,也有可能是最具效率的。不同的環(huán)境和要求使得我們?cè)谶x擇腳本語(yǔ)言時(shí)注重不同的因素,同時(shí)也使得我們?cè)谀承r(shí)候面臨選定的腳本語(yǔ)言不能直接提供其它語(yǔ)言固有的函數(shù)這一問(wèn)題,或某個(gè)腳本已經(jīng)寫成但用的卻是另外一種腳本語(yǔ)言。
此時(shí)應(yīng)該怎么辦?是否需要用當(dāng)前所用的腳本語(yǔ)言重寫這些腳本?或者說(shuō),是否有可能在一種腳本語(yǔ)言中調(diào)用其它腳本語(yǔ)言的內(nèi)置函數(shù)?本文要說(shuō)明的就是在ASP應(yīng)用中如何讓VBScript腳本和JScript腳本交互以最大限度地獲得兩種腳本語(yǔ)言的特色支持。
一、VBScript和JScript的內(nèi)置函數(shù)
在VBScript和JScript中,有大量的內(nèi)置函數(shù)功能是相同或類似的。然而,在一種腳本語(yǔ)言中內(nèi)置的函數(shù)并非總是在另外一種腳本語(yǔ)言中也有對(duì)應(yīng)的函數(shù)。例如,VBScript提供了許多用于操作字符串和格式化數(shù)據(jù)的函數(shù),這些函數(shù)在JScript中并不存在。這些函數(shù)包括StrReverse()、Filter()以及FormatCurrency()等。在另一方面,JScript所提供的用于管理數(shù)組、字符串編碼等的函數(shù)在VBScript中也沒(méi)有定義,如join()、reverse()、pow()、位操作、escape()和unescape()等。
那么,如果在JScript程序中需要一個(gè)VBscript函數(shù)該怎么辦呢?
二、異種腳本的互相調(diào)用
如果需要在JScript腳本中調(diào)用一個(gè)VBScript中內(nèi)置的函數(shù),則應(yīng)該寫一個(gè)VBScript用戶定義函數(shù)(在這里調(diào)用VBScript內(nèi)置函數(shù)),然后在JScript腳本中象調(diào)用公用JScript函數(shù)一樣調(diào)用這個(gè)用戶定義函數(shù)。
例如,如果要調(diào)用的VBSCript內(nèi)置函數(shù)是FormatCurrency(),則可以聲明如下自定義函數(shù):
以下為引用的內(nèi)容:
< SCRIPT LANGUAGE="VBSCRIPT" RUNAT="SERVER"> Function FormatValue(Value) FormatValue = FormatCurrency(Value) End Function < /SCRIPT>
接下來(lái)在JScript代碼中就可以象普通JScript函數(shù)一樣調(diào)用FormatValue()了。用類似的方法也可以實(shí)現(xiàn)VBScript代碼調(diào)用JScript函數(shù)。
新聞熱點(diǎn)
疑難解答
圖片精選