主頁 > 知識(shí)庫(kù) > remote script文檔(轉(zhuǎn)載自微軟)(六)

remote script文檔(轉(zhuǎn)載自微軟)(六)

熱門標(biāo)簽:樂昌電話機(jī)器人 北京語音電銷機(jī)器人價(jià)格 電話機(jī)器人電話卡封號(hào)怎么辦 浦東上海400開頭的電話申請(qǐng) 開封百應(yīng)電銷機(jī)器人聯(lián)系方式 買了外呼系統(tǒng)不想用了怎么辦 武漢呼叫中心外呼系統(tǒng)線路商 邯鄲外呼調(diào)研線路 真人語音電銷機(jī)器人系統(tǒng)
文檔: 調(diào)用 Remote Scripting 方法異步

Remote scripting 向您提供了異步調(diào)用服務(wù)器方法的選擇 ──當(dāng)執(zhí)行服務(wù)器方法時(shí),用戶的客戶腳本繼續(xù)運(yùn)行。異步調(diào)用 remote scripting 方法使得您可以避免應(yīng)用程序用戶接口速度的減慢,因?yàn)槟梢栽趫?zhí)行服務(wù)器腳本的同時(shí)繼續(xù)工作。

注意 如果您的應(yīng)用程序需要,那么也可以同步調(diào)用服務(wù)器方法。有關(guān)詳細(xì)信息,請(qǐng)參閱同步調(diào)用 Remote Scripting 方法。

異步調(diào)用某個(gè) remote script 類似于同步調(diào)用。不過,當(dāng)產(chǎn)生調(diào)用時(shí),您要指定多至三個(gè)附加參數(shù): 

當(dāng)服務(wù)器方法完成處理時(shí),在用戶的客戶腳本中有一個(gè)被調(diào)用的 javascript callback function 。例如,如果用戶的 remote scripting 方法執(zhí)行一次數(shù)據(jù)庫(kù)檢查,那么回調(diào)函數(shù)可能得到遠(yuǎn)程調(diào)用返回的檢查值,并在頁面上的某個(gè)控件中顯示之。


一個(gè)可選的 javascript 錯(cuò)誤回調(diào)函數(shù)──如果異步調(diào)用時(shí)遇到錯(cuò)誤將調(diào)用之。


一個(gè)可選的上下文參數(shù)。這是用戶傳遞給方法并在以后傳回用戶的數(shù)據(jù)。它典型地用于幫助您決定在自己的回調(diào)函數(shù)中正調(diào)用什么方法,例如,如果您正在將所有遠(yuǎn)程腳本調(diào)用回傳給某個(gè)回調(diào)函數(shù)。 
類似于同步調(diào)用,異步調(diào)用將創(chuàng)建一個(gè)調(diào)用對(duì)象,該對(duì)象支持包含被調(diào)用過程的返回值和狀態(tài)信息的屬性。例如,某個(gè) remote scripting 方法的返回值可在調(diào)用對(duì)象的 return_value 屬性中獲得。在異步調(diào)用時(shí),調(diào)用對(duì)象 status 屬性向用戶提供關(guān)于調(diào)用狀態(tài)的信息。

當(dāng)您產(chǎn)生異步調(diào)用時(shí),調(diào)用對(duì)象作為一個(gè)參數(shù)傳遞到回調(diào)函數(shù)中。這樣您就可以在調(diào)用腳本中對(duì)其進(jìn)行測(cè)試(例如,決定呼叫的狀態(tài)),或者在回調(diào)函數(shù)中測(cè)試(例如,獲得方法的返回值)。

如果您已經(jīng)創(chuàng)建了對(duì)某個(gè)服務(wù)器頁的對(duì)象引用,那么您就可以用標(biāo)準(zhǔn)的 object.method 語法來調(diào)用方法。有關(guān)創(chuàng)建對(duì)象引用的詳細(xì)信息,請(qǐng)參閱作為對(duì)象引用 ASP 頁。

如何異步調(diào)用服務(wù)器方法 

如果用戶已經(jīng)創(chuàng)建了對(duì)服務(wù)器頁的對(duì)象引用,那么可以用下面的語法。由于您必須傳遞回調(diào)函數(shù)的函數(shù)指針,因此對(duì)于異步方法調(diào)用來說,您必須用 javascript。
callObject = ASPObject. methodName(p1, p2[,...],
callbackFunction, errorCallbackFunction, context)


- 或者 - 

如果您尚未創(chuàng)建對(duì)象引用,那么可以調(diào)用 RSExecute 函數(shù),所用語法如下:
callobject = RSExecute(url, methodName, p1, p2[,...], 
callbackFunction, errorCallbackFunction, context)


其中: 

ASPObject 您先前用 RSGetASPObject 方法創(chuàng)建的對(duì)象引用。有關(guān)詳細(xì)信息,請(qǐng)參閱作為對(duì)象引用 ASP 頁。


callObject 在完成 remote scripting 調(diào)用時(shí)將被實(shí)例化的調(diào)用對(duì)象名。您無需創(chuàng)建在調(diào)用 remote script 之前創(chuàng)建該對(duì)象;RSExecute 方法為您創(chuàng)建該對(duì)象。


url 包含您想要執(zhí)行的遠(yuǎn)程腳本的 ASP 頁的 URL。服務(wù)器頁必須已被配置為使得服務(wù)器頁中的 Remote Scripting 有效中所描述的那樣。服務(wù)器頁必須在用戶從中請(qǐng)求當(dāng)前客戶頁的服務(wù)器上。


methodName 您想要執(zhí)行的服務(wù)器頁上的方法名。


p1, p2, ... methodName 中方法所需要的任何參數(shù)。參數(shù)是通過值進(jìn)行傳遞的。您可以傳遞簡(jiǎn)單的數(shù)據(jù)類型,比如數(shù)值或者文本值,但不能傳遞數(shù)組或者對(duì)象。
注意 當(dāng)把參數(shù)從客戶傳遞給服務(wù)器時(shí),它們被轉(zhuǎn)換為字符串。要確保在使用這些參數(shù)值時(shí),您的服務(wù)器方法將它們轉(zhuǎn)換為合適的數(shù)據(jù)類型。有關(guān)詳細(xì)信息,請(qǐng)參閱使得服務(wù)器頁中的 Remote Scripting 有效。 

callbackFunction 您的客戶腳本中 javascript 函數(shù)的函數(shù)指針,當(dāng)完成對(duì) remote scripting 方法的調(diào)用時(shí)將調(diào)用該函數(shù)。由于用戶正在傳遞的是一個(gè)指針,因此不要在引號(hào)中包括其名字。在 RSExecute 調(diào)用中包括回調(diào)函數(shù)名意味著您想要異步執(zhí)行 remote scripting 方法。


errorCallbackFunction 用戶的客戶腳本中某個(gè)可選 javascript 函數(shù)的函數(shù)指針,如果 remote scripting 方法遇到一個(gè)錯(cuò)誤,將調(diào)用該函數(shù)。由于您所傳遞的是一個(gè)指針,因此不要在引號(hào)中包括其名。關(guān)于 remote scripting 中錯(cuò)誤的詳細(xì)信息,請(qǐng)參閱檢查錯(cuò)誤。


context 您傳遞給 remote scripting 方法并回傳給您的一個(gè)可選值。您可以在自己的回調(diào)函數(shù)中用自己覺得有用的任意方式使用該值。 
例如,下面按鈕 btnSquare 的客戶腳本 onclick 處理程序調(diào)用服務(wù)器方法 square 來對(duì)文本框 txt1 中的指定數(shù)值進(jìn)行平方運(yùn)算。當(dāng)執(zhí)行了該方法后,它調(diào)用函數(shù) showResults 。操作符名(“求平方”)在上下文參數(shù)中進(jìn)行傳遞。

SCRIPT LANGUAGE="javascript" for="btnSquare" event="onclick">
rsMath = RSGetASPObject("../myPages/RSMath.asp")
number1 = txt1.value;
context = "squaring";
co = rsmath.square(number1,showResults,context);
/SCRIPT>


使用 RSExecute 而不用對(duì)象引用的同樣示例如下所示:

SCRIPT LANGUAGE="javascript" for="btnSquare" event="onclick">
number1 = txt1.value;
context = "squaring";
co = RSExecute("RSmath.asp","square",number1,showResults,context);
/SCRIPT>


函數(shù) showResults 是先前示例的回調(diào)函數(shù),可能如下所示:

SCRIPT LANGUAGE="javascript">
function showResults(co){
typeOp = co.context;
rValue = co.return_value;
txt2.value = "Result of " + typeOp + " operation = " + rValue;
}
SCRIPT>


在這種情況下,showResults 函數(shù)可被用作一般意義上的回調(diào)函數(shù),以顯示任何運(yùn)算值。該函數(shù)指明用戶可能如何使用調(diào)用對(duì)象的 context 屬性(當(dāng)調(diào)用 remote scripting 函數(shù)時(shí)對(duì)之進(jìn)行初始化),以便于決定如何調(diào)用回調(diào)函數(shù)。

測(cè)試異步調(diào)用
用戶可以對(duì)某個(gè)遠(yuǎn)程調(diào)用的狀態(tài)進(jìn)行測(cè)試,以便于搞清調(diào)用是否成功。如果用戶已經(jīng)進(jìn)行了異步調(diào)用,那么用戶可以測(cè)試是否已完成調(diào)用。

如何測(cè)試某個(gè)遠(yuǎn)程調(diào)用的狀態(tài) 

在調(diào)用腳本中,獲得調(diào)用對(duì)象的 status 屬性值,它可以包含下列值中的任一個(gè): 
值 描述 
-1 失敗 
0 完成 
1 掛起(僅在異步調(diào)用過程中有效)。 


下面的示例顯示了同步調(diào)用某個(gè)叫做 square 的 remote scripting 方法,然后在頁面上的某個(gè)文本框中顯示調(diào)用狀態(tài)的客戶腳本。

SCRIPT LANGUAGE="javascript" for="btnSquare" event="onclick">
number1 = txt1.value;
context = "squaring";
co = RSExecute("RSmath.asp","square",number1);
if (co.status == -1)
{txt2.value = "Call failed";}
else 
{txt2.value = "Call succeeded, return value = " + co.return_value;} }
/SCRIPT>


關(guān)于錯(cuò)誤的詳細(xì)信息,請(qǐng)參閱檢查錯(cuò)誤。


控制異步調(diào)用
進(jìn)行異步調(diào)用時(shí),可用兩種方式來控制它: 

等待調(diào)用完成。這將掛起客戶腳本處理,直到完成 remote scripting 調(diào)用,有效地將異步調(diào)用轉(zhuǎn)換為同步調(diào)用。如果您在自己的客戶腳本中到了異步調(diào)用提供所需信息的階段,那么就可這樣做。為了等待,可以調(diào)用調(diào)用對(duì)象的等待方法。


取消調(diào)用,若要這樣做,可以調(diào)用調(diào)用對(duì)象的取消方法。

標(biāo)簽:宜春 河北 松原 石嘴山 六安 鄂州 淄博 自貢

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《remote script文檔(轉(zhuǎn)載自微軟)(六)》,本文關(guān)鍵詞  remote,script,文檔,轉(zhuǎn)載,自,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《remote script文檔(轉(zhuǎn)載自微軟)(六)》相關(guān)的同類信息!
  • 本頁收集關(guān)于remote script文檔(轉(zhuǎn)載自微軟)(六)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章