ASP远程脚本调用

远程脚本调用技术允许客户端脚本无需刷新页面即可调用服务器端脚本,提高了交互式Web应用的效率。本文通过一个示例解释了如何在客户端输入文字后调用服务器端脚本,展示SessionID和IP地址。远程调用涉及到RS.htm、RSProxy.class和RS.asp等文件,并要求服务器端脚本使用JavaScript编写,且函数必须封装在类中。客户端则需要引用RS.htm并调用RSEnableRemoteScripting函数。最后,通过RSExecute方法实现远程调用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


远程脚本调用技术(Remote Scripting)的最大特点是:客户端脚本调用服务器脚本时无需刷新整个页面。一般情况 
下,Web页面需要与服务器交互时必须提交表单数据,刷新整个页面。这不仅不利于改善浏览效果,也不利于提高服务器效 
率。利用远程脚本调用技术(Remote Scripting),客户端脚本可以像调用本地函数一样调用远程脚本函数,从而极大地 
方便了交互式Web应用的开发。使得那些基于浏览器的应用更接近于传统的Win32应用。在复杂的表单验证和频繁的数据库 
操作中,应用远程脚本调用技术的优点是显而易见的。 
下面以一个示例来说明。它的功能是:在客户端输入文字,然后调用服务器端脚本函数,把SessionID与IP地址显示给 
用户。 
一、基本原理 
远程脚本调用技术提供了一组接口函数。借助这组接口函数,客户端程序可以通过一个代理过程(一个Java Applet) 
调用服务器端代码。JavaApplet(RSProxy.class)在后台工作,通常情况下用户代码并不需要直接操作它,它的配置也是 
自动完成的。远程脚本调用既可以是同步调用(调用命令发出后一直等待,直到服务器执行函数结束后返回),也可以是 
异步调用(函数调用后立即返回,调用时必须同时给出回调函数)。一个远程脚本调用技术示例必须包含如下支持文件: 
RS.htm:包含客户端支持代码 
RSProxy.class:这是一个Java Applet,实际完成客户/服务器交互过程 
RS.asp:服务器端支持代码 

使用远程脚本调用功能时,客户端和服务器端代码都必须符合一定的要求。在服务器端,首先必须启用远程脚本调 
用:用#include包含RS.asp,并调用RSDispatch函数(参见sample.asp文件)。在服务器端实现远程脚本支持的关键在于 
创建public_description对象。对于一个远程脚本调用客户程序来说,ASP文件可以看成是一个通过public_description对 
象提供远程方法的对象,ASP文件中的所有其它函数都是私有的。这种私有意味着,客户程序只能对某些特定的函数实施远 
程调用。应当避免写全局性的ASP代码(没有封装在函数中的代码),远程调用时这些代码是不会执行的,因为远程调用时 
脚本执行过程和普通ASP页面执行过程是不同的。把全局脚本代码放入函数并显式调用,可以确保它们被正确地执行。 
远程脚本调用技术要求服务器端的脚本必须用JavaScript编写。本例声明了一个Description类,该类包含一个公用的 
sam1函数,用new关键字创建Description,即public_description对象。 
Sample.asp: 
<%@ LANGUAGE=VBSCRIPT %〉 
<% RSDispatch %〉 
<!--#INCLUDE FILE=″../rs.asp″--〉 
<Script language=javascript runat=server〉 
function Description()   { 
this.sam1 = sam1 ;   } 
public_description = new Description(); 
function sam1(str)   { 
return ″Hi! ″+str+″:\nYour SessionID=″+session.sessionID+″\nYour IP Address=″+ 
Request.ServerVariables(″REMOTE_ADDR″);   } 
</script〉   上面介绍了实现远程脚本调用对服务器端的要求,接下来我们看看远程调用功能对客户端的要求。 
客户程序实现远程调用之前必须先完成以下两个任务:首先,启用远程脚本调用技术功能的Web页面必须引用RS.htm;其 
次,必须调用RSEnableRemoteScripting函数。RSEnableRemoteScripting函数允许在参数中指定RSProxy.class文件所在的 
实际路径,如果没有指定这个参数,则默认RSProxy.class在_ScriptLibrary目录下,如: 
<script language=″JavaScript″ src=″../rs.htm″> </script〉 
<script language=″JavaScript″> RSEnableRemoteScripting(″..″); </script〉 
二、调用远程脚本 
完成上述准备工作之后,就可以在客户端代码中调用服务器端函数了。远程调用用RSExecute方法实现。该方法接受的 
参数包括服务器ASP页面的URL、远程函数名字以及参数列表。RSExecute的调用结果是一个调用对象(Call Object)。调 
用对象中包含了该次调用的返回值以及状态信息,其主要属性包括: 
id:该次调用的唯一标识。 
return_value:实际返回值,如果存在的话。 
data:服务器响应该次远程调用返回的原始数据。 
status:标识本次调用的状态,-1表示失败,0表示完成。 
message:有关本次调用的文本信息。如调用成功,为“Completed.”,否则,包含错误说明。 
data属性实际上是一个XML字符串。当然,应用远程脚本调用技术并不要求用户懂得XML(也不要求用户懂Java),这 
里的XML文本是由服务器自动生成的,远程脚本调用客户端程序能自动解析这些XML文本。 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值