直播中
注意 您也可以異步調(diào)用服務(wù)器方法。有關(guān)詳細(xì)信息,請(qǐng)參閱異步調(diào)用 Remote Scripting 方法。
當(dāng)您調(diào)用某個(gè)服務(wù)器方法時(shí),該方法并不返回單個(gè)值。而是創(chuàng)建一個(gè) call object ,它是一個(gè)包含了被調(diào)用過(guò)程的返回和狀態(tài)信息的對(duì)象。最常用的屬性是調(diào)用對(duì)象的 return_value 屬性,它包含了遠(yuǎn)程過(guò)程計(jì)算或者檢查出來(lái)的單個(gè)值。其他調(diào)用對(duì)象屬性使得用戶(hù)可以得到更多關(guān)于遠(yuǎn)程過(guò)程調(diào)用的狀態(tài)信息。
如果您已經(jīng)創(chuàng)建了對(duì)某個(gè)服務(wù)器頁(yè)的對(duì)象引用,那么可以用標(biāo)準(zhǔn) object.method 語(yǔ)法來(lái)調(diào)用方法。有關(guān)創(chuàng)建對(duì)象引用的詳細(xì)信息,請(qǐng)參閱作為對(duì)象引用 ASP 頁(yè)。另外,您也可以在沒(méi)有任何對(duì)象引用時(shí)調(diào)用 remote scripting 方法。這樣做比起使用 object.method 語(yǔ)法來(lái)要略微冗余些,但不需要用戶(hù)首先創(chuàng)建對(duì)象引用。
同步調(diào)用服務(wù)器方法
如果用戶(hù)創(chuàng)建了對(duì)服務(wù)器頁(yè)的對(duì)象引用,那么對(duì)于使用 JavaScript 的調(diào)用,可用第一個(gè)語(yǔ)法示例,而對(duì)于使用 VBScript 的調(diào)用,可用第二種語(yǔ)法示例:
JavaScript:
callObject = ASPObject.methodName(p1, p2[,...])
VBScript:
set callObject = ASPObject.methodName(p1, p2[,...])
- 或者 -
如果用戶(hù)沒(méi)有創(chuàng)建對(duì)象引用,調(diào)用 RSExecute 函數(shù)。對(duì)于使用 JavaScript 的調(diào)用,使用第一個(gè)語(yǔ)法示例,而對(duì)于使用 VBScript 的調(diào)用,使用第二種語(yǔ)法示例:
JavaScript:
callobject = RSExecute(url, methodName, p1, p2[,...])
VBScript:
set callobject = RSExecute(url, methodName, p1, p2[,...])
其中:
callObject 在 remote scripting 調(diào)用完成后,將被實(shí)例化的調(diào)用對(duì)象名。您無(wú)需在調(diào)用 remote script 之前創(chuàng)建該對(duì)象;遠(yuǎn)程腳本調(diào)用為您創(chuàng)建之。
ASPObject 您在早期使用 RSGetASPObject 方法可選擇地創(chuàng)建的對(duì)象引用。有關(guān)詳細(xì)信息,請(qǐng)參閱作為對(duì)象引用 ASP 頁(yè)。
url 包含您想要執(zhí)行的遠(yuǎn)程腳本的 ASP 頁(yè)的 URL。必須已將服務(wù)器頁(yè)配置為使得服務(wù)器頁(yè)中的 Remote Scripting 有效中所描述的那樣。服務(wù)器頁(yè)必須在用戶(hù)從中請(qǐng)求當(dāng)前客戶(hù)頁(yè)的服務(wù)器上。
methodName 您想要執(zhí)行的服務(wù)器頁(yè)上的方法名。
p1, p2, ... methodName中的方法所需要的任何參數(shù)。 參數(shù)是通過(guò)值來(lái)傳遞的。用戶(hù)可以傳遞簡(jiǎn)單的數(shù)據(jù)類(lèi)型,比如數(shù)值或者文本值,但不能傳遞結(jié)構(gòu)化數(shù)據(jù),比如數(shù)組或者對(duì)象。
注意 當(dāng)把參數(shù)從客戶(hù)傳遞給服務(wù)器時(shí),它們被轉(zhuǎn)換為字符串。要確保您的服務(wù)器方法在使用參數(shù)時(shí),將之轉(zhuǎn)換為合適的數(shù)據(jù)類(lèi)型。有關(guān)詳細(xì)問(wèn)題,請(qǐng)參閱使得服務(wù)器頁(yè)中的 Remote Scripting 有效。
例如,下面按鈕 btnAdd 的客戶(hù)腳本 onclick 處理程序調(diào)用服務(wù)器方法 add 來(lái)累加兩個(gè)數(shù)值。調(diào)用 remote scripting 方法會(huì)創(chuàng)建一個(gè)名為 co 的調(diào)用對(duì)象。remote scripting 調(diào)用的結(jié)果從調(diào)用對(duì)象的return_value屬性中提取出來(lái),并作為名為 txt3 的文本框值顯示出來(lái)。
<SCRIPT LANGUAGE="JavaScript" for="btnAdd" event="onclick">
rsMath = RSGetASPObject("../myPages/RSMath.asp")
number1 = txt1.value;
number2 = txt2.value;
co = rsMath.Add(number1,number2);
txt3.value = "The sum is " + co.return_value;
</SCRIPT>
在無(wú)對(duì)象引用情況下所產(chǎn)生的同樣調(diào)用(用RSExecute)可能如下所示:
<SCRIPT LANGUAGE="JavaScript" for="btnAdd" event="onclick">
number1 = txt1.value;
number2 = txt2.value;
co = RSExecute("RSmath.asp","add",number1,number2);
txt3.value = "The sum is " + co.return_value;
</SCRIPT>
有關(guān)在產(chǎn)生 remote scripting 調(diào)用時(shí),如何檢查錯(cuò)誤的詳細(xì)信息,請(qǐng)參閱檢查錯(cuò)誤。