首页 >> 读书频道 >> 电脑 >> remote script文档(转载自微软)(六)
 
· remote scrip
· remote scrip
· remote scrip
· remote scrip
· remote scrip
· 用排序串字段实现树状结构
· 用排序串字段实现树状结构
· 用排序串字段实现树状结构
· 用排序串字段实现树状结构
· 用排序串字段实现树状结构
· 用排序串字段实现树状结构
· 用排序串字段实现树状结构
 
· 美容养颜手册
· 加油金顺剧情分集介绍完整
· 红楼梦:120回全本[清
· 素质教育在美国
· 全唐诗卷四十六
· 韩剧《布拉格恋人》剧情介
· 夜航船[作者:明·张岱]
· 局外人[作者:韩·可爱淘
· 现场流行病学
· 源氏物语[日本:紫式部]
· 武林寓言故事
· 2006高考录取规则
 
· (出租)中动商场部分及写
· (出租)中动动漫基地&#
· 喜剧学院
· 《善德女王》剧情介绍
· 魔女18号 剧情
· 丑女无敌剧情介绍
· 魔女幼熙剧情介绍
· 龙游天下剧情介绍
· 震撼世界的七日剧情介绍
· 静静的白桦林剧情介绍
· 心情日记—老公今天我想对
· 旗舰剧情介绍
欢迎来到月影社区!如果您觉得这里不错,请推荐给您的朋友们。月影社区:http://wf66.com/

remote script文档(转载自微软)(六)


查看有无更新版本

关键字:ASP技巧 2006-9-8

 

文档: 调用 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 调用,有效地将异步调用转换为同步调用。如果您在自己的客户脚本中到了异步调用提供所需信息的阶段,那么就可这样做。为了等待,可以调用调用对象的等待方法。

取消调用,若要这样做,可以调用调用对象的取消方法。 

remote script文档(转载自微软)(六)

[ 1 ]
remote script文档(转载自微软)(六) num

打印本页 关闭

关于我们版权声明本站导航友情连结作品演示 TOP↑