快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

REMOTE SCRIPT文档(转载自微软)(六)

文档: 调用 Remote Scripting 方式异步

Remote scripting 向您提供了异步调用服务器方式的选择 ──当执行服务器方式时,用户的客户脚本继承运行。异步调用 remote scripting 方式使得您可以避免应用程序用户接口速度的减慢,因为您可以在执行服务器脚本的同时继承工作。

注重 假如您的应用程序需要,那么也可以同步调用服务器方式。有关具体信息,请参阅同步调用 Remote Scripting 方式。

异步调用某个 remote script 类似于同步调用。不过,当产生调用时,您要指定多至三个附加参数:

当服务器方式完成处理时,在用户的客户脚本中有一个被调用的 JavaScript callback function 。例如,假如用户的 remote scripting 方式执行一次数据库检查,那么回调函数可能得到远程调用返回的检查值,并在页面上的某个控件中显示之。


一个可选的 JavaScript 错误回调函数──假如异步调用时碰到错误将调用之。


一个可选的上下文参数。这是用户传递给方式并在以后传回用户的数据。它典型地用于帮助您决定在自己的回调函数中正调用什么方式,例如,假如您正在将所有远程脚本调用回传给某个回调函数。
类似于同步调用,异步调用将创建一个调用对象,该对象支持包含被调用过程的返回值和状态信息的属性。例如,某个 remote scripting 方式的返回值可在调用对象的 return_value 属性中获得。在异步调用时,调用对象 status 属性向用户提供关于调用状态的信息。

当您产生异步调用时,调用对象作为一个参数传递到回调函数中。这样您就可以在调用脚本中对其进行测试(例如,决定呼叫的状态),或者在回调函数中测试(例如,获得方式的返回值)。

假如您已经创建了对某个服务器页的对象引用,那么您就可以用标准的 object.method 语法来调用方式。有关创建对象引用的具体信息,请参阅作为对象引用 ASP 页。

如何异步调用服务器方式

假如用户已经创建了对服务器页的对象引用,那么可以用下面的语法。由于您必须传递回调函数的函数指针,因此对于异步方式调用来说,您必须用 JavaScript。
callObject = ASPObject. methodName(p1, p2[,...],
callbackFunction, errorCallbackFunction, context)


- 或者 -

假如您尚未创建对象引用,那么可以调用 RSExecute 函数,所用语法如下:
callobject = RSExecute(url, methodName, p1, p2[,...],
callbackFunction, errorCallbackFunction, context)


其中:

ASPObject 您先前用 RSGetASPObject 方式创建的对象引用。有关具体信息,请参阅作为对象引用 ASP 页。


callObject 在完成 remote scripting 调用时将被实例化的调用对象名。您无需创建在调用 remote script 之前创建该对象;RSExecute 方式为您创建该对象。


url 包含您想要执行的远程脚本的 ASP 页的 URL。服务器页必须已被配置为使得服务器页中的 Remote Scripting 有效中所描述的那样。服务器页必须在用户从中哀求当前客户页的服务器上。


methodName 您想要执行的服务器页上的方式名。


p1, p2, ... methodName 中方式所需要的任何参数。参数是通过值进行传递的。您可以传递简朴的数据类型,比如数值或者文本值,但不能传递数组或者对象。
注重 当把参数从客户传递给服务器时,它们被转变为字符串。要确保在使用这些参数值时,您的服务器方式将它们转变为合适的数据类型。有关具体信息,请参阅使得服务器页中的 Remote Scripting 有效。

callbackFunction 您的客户脚本中 JavaScript 函数的函数指针,当完成对 remote scripting 方式的调用时将调用该函数。由于用户正在传递的是一个指针,因此不要在引号中包括其名字。在 RSExecute 调用中包括回调函数名意味着您想要异步执行 remote scripting 方式。


errorCallbackFunction 用户的客户脚本中某个可选 JavaScript 函数的函数指针,假如 remote scripting 方式碰到一个错误,将调用该函数。由于您所传递的是一个指针,因此不要在引号中包括其名。关于 remote scripting 中错误的具体信息,请参阅检查错误。


context 您传递给 remote scripting 方式并回传给您的一个可选值。您可以在自己的回调函数中用自己觉得有用的任意方法使用该值。
例如,下面按钮 btnSquare 的客户脚本 onclick 处理程序调用服务器方式 square 来对文本框 txt1 中的指定数值进行平方运算。当执行了该方式后,它调用函数 showResults 。操作符名(“求平方”)在上下文参数中进行传递。

<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 而不用对象引用的同样示例如下所示:

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


函数 showResults 是先前示例的回调函数,可能如下所示:

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


在这种情况下,showResults 函数可被用作一般意义上的回调函数,以显示任何运算值。该函数指明用户可能如何使用调用对象的 context 属性(当调用 remote scripting 函数时对之进行初始化),以便于决定如何调用回调函数。

测试异步调用
用户可以对某个远程调用的状态进行测试,以便于搞清调用是否成功。假如用户已经进行了异步调用,那么用户可以测试是否已完成调用。

如何测试某个远程调用的状态

在调用脚本中,获得调用对象的 status 属性值,它可以包含下列值中的任一个:
值 描述
-1 失败
0 完成
1 挂起(仅在异步调用过程中有效)。


下面的示例显示了同步调用某个叫做 square 的 remote scripting 方式,然后在页面上的某个文本框中显示调用状态的客户脚本。

<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>


关于错误的具体信息,请参阅检查错误。


控制异步调用
进行异步调用时,可用两种方法来控制它:

等待调用完成。这将挂起客户脚本处理,直到完成 remote scripting 调用,有效地将异步调用转变为同步调用。假如您在自己的客户脚本中到了异步调用提供所需信息的阶段,那么就可这样做。为了等待,可以调用调用对象的等待方式。


取消调用,若要这样做,可以调用调用对象的取消方式。
返回类别: 教程
上一教程: 几个比较好用的ASP检查函数
下一教程: 利用ASP把图片上传到数据库

您可以阅读与"REMOTE SCRIPT文档(转载自微软)(六)"相关的教程:
· REMOTE SCRIPT文档(转载自微软)(七)
· REMOTE SCRIPT文档(转载自微软)(九)
· REMOTE SCRIPT文档(转载自微软)(五)
· REMOTE SCRIPT文档(转载自微软)(二)
· REMOTE SCRIPT文档(转载自微软)(三)
    微笑服务 优质保证 索取样品