Remote Scripting進階圖文說明教程---調用 Remote Scripting
發表時間:2024-01-11 來源:明輝站整理相關軟件相關文章人氣:
[摘要]在對某個客戶頁和某個服務器頁上的 remote scripting 進行配置后,您就可以從自己的客戶腳本調用該服務器頁的方法了。缺省的情況是,當用戶調用某個服務器方法時,它被同步執行──您的客戶腳本直到服務器方法執行完畢并返回結果后才能停止運行。一般說來,當您在自己的客戶腳本中需要服務器方法結果時...
在對某個客戶頁和某個服務器頁上的 remote scripting 進行配置后,您就可以從自己的客戶腳本調用該服務器頁的方法了。缺省的情況是,當用戶調用某個服務器方法時,它被同步執行──您的客戶腳本直到服務器方法執行完畢并返回結果后才能停止運行。一般說來,當您在自己的客戶腳本中需要服務器方法結果時,則需同步調用服務器方法。
注意 您也可以異步調用服務器方法。有關詳細信息,請參閱異步調用 Remote Scripting 方法。
當您調用某個服務器方法時,該方法并不返回單個值。而是創建一個 call object ,它是一個包含了被調用過程的返回和狀態信息的對象。最常用的屬性是調用對象的 return_value 屬性,它包含了遠程過程計算或者檢查出來的單個值。其他調用對象屬性使得用戶可以得到更多關于遠程過程調用的狀態信息。
如果您已經創建了對某個服務器頁的對象引用,那么可以用標準 object.method 語法來調用方法。有關創建對象引用的詳細信息,請參閱作為對象引用 ASP 頁。另外,您也可以在沒有任何對象引用時調用 remote scripting 方法。這樣做比起使用 object.method 語法來要略微冗余些,但不需要用戶首先創建對象引用。
同步調用服務器方法
如果用戶創建了對服務器頁的對象引用,那么對于使用 JavaScript 的調用,可用第一個語法示例,而對于使用 VBScript 的調用,可用第二種語法示例:
javascript:
callObject = ASPObject.methodName(p1, p2[,...])
VBScript:
set callObject = ASPObject.methodName(p1, p2[,...])
- 或者 -
如果用戶沒有創建對象引用,調用 RSExecute 函數。對于使用 JavaScript 的調用,使用第一個語法示例,而對于使用 VBScript 的調用,使用第二種語法示例:
javascript:
callobject = RSExecute(url, methodName, p1, p2[,...])
VBScript:
set callobject = RSExecute(url, methodName, p1, p2[,...])
其中:
callObject 在 remote scripting 調用完成后,將被實例化的調用對象名。您無需在調用 remote script 之前創建該對象;遠程腳本調用為您創建之。
ASPObject 您在早期使用 RSGetASPObject 方法可選擇地創建的對象引用。有關詳細信息,請參閱作為對象引用 ASP 頁。
url 包含您想要執行的遠程腳本的 ASP 頁的 URL。必須已將服務器頁配置為使得服務器頁中的 Remote Scripting 有效中所描述的那樣。服務器頁必須在用戶從中請求當前客戶頁的服務器上。
methodName 您想要執行的服務器頁上的方法名。
p1, p2, ... methodName中的方法所需要的任何參數。 參數是通過值來傳遞的。用戶可以傳遞簡單的數據類型,比如數值或者文本值,但不能傳遞結構化數據,比如數組或者對象。
注意 當把參數從客戶傳遞給服務器時,它們被轉換為字符串。要確保您的服務器方法在使用參數時,將之轉換為合適的數據類型。有關詳細問題,請參閱使得服務器頁中的 Remote Scripting 有效。
例如,下面按鈕 btnAdd 的客戶腳本 onclick 處理程序調用服務器方法 add 來累加兩個數值。調用 remote scripting 方法會創建一個名為 co 的調用對象。remote scripting 調用的結果從調用對象的return_value屬性中提取出來,并作為名為 txt3 的文本框值顯示出來。
<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>
在無對象引用情況下所產生的同樣調用(用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>
有關在產生 remote scripting 調用時,如何檢查錯誤的詳細信息,請參閱檢查錯誤。