Remote Scripting技术的实现


Remote Scripting (RS)老早以前我就一直在说这个技术名词了,
它到底是个什么东东了,其实RS是一种远程调用你的ASP页面
(当然是调用你指定的URL中的ASP页面了)中的某个函数或者方法
的技术。
该技术主要有三大优点:
I。你能够优化你每次从客户端到服务端的一个来回数据流程
II。你能够在不同的ASP页面中重用(就是多次使用)同一个函数或则方法
III。当你连接到远程的ASP页面时不会刷新你的当前正在浏览的页面
上面是它的三大特点,下面讲讲具体的过程。
RS让你直接调用(或则说建立一个到服务端的连接)
注意,这也是它和RDS的不同的地方,RDS是通过一个类似与代理的机制并且
建立的连接是在一个断开连接的记录集基础上的。
RS在建立这个连接的时候,是不会影响当前所在的ASP页面的。
一旦你建立了这样的一个连接后,你就能够调用任何一个在你的远程页面中
申明为public的函数。然后你可以把调用页面需要的所有数据缓存在本地,
当客户端的页面接受到远程调用函数的返回值后,这些返回值有可能是
一个数组(array),记录集(recordset),字符串(string)
接下来你就可以使用客户端的数据处理技术(例如客户端的JS,DHTML等)来对这些
数据进行处理了。这些数据你完全可以当作好象就是使用客户端的
脚本函数得到的一样。

RS的基本原理:
RS是通过“RS.HTM”(这是一个客户端的模块)和“RS.asp”(这是一个服务端的模块)
来建立一个客户端到服务端的连接的。
当然其中使用了一个后台加入到客户端的Java applet来实现的。
该applet通过HTTP传递你要调用服务端上特定的ASP页面和参数。
而客户端的页面通过调用本地的rs.htm中的函数来进行每次的远程调用申请。
所以了,大家可以想象得到要想使用RS技术的话,那么在你的ASP页面中就必须要
包括这些特定的页面

如何使用RS
一般只要你安装了VI后,就有了所需要的东西了。
主要是下面的三个文件:rsproxy.class, rs.asp, rs.htm.
把它们放到这个目录中wwwroot\_ScriptLibrary
客户端的写法:
然后在你想使用RS的页面的最前面包含这几个文件:
<script language="JavaScript" 
src="http://YourServer/_ScriptLibrary/rs.htm"> 
</script>
<script language="JavaScript"> 
serverURL = "http://YourServer/_ScriptLibrary ";
RSEnableRemoteScripting(serverURL); 
</script> 
注意其中的serverURL,它必须是你想调用服务端asp的URL地址的全写。
例如:http://YourServer/rsdemo/server.asp
服务端的写法:
还要注意的是你必须要使用JavaScript来写你的远程调用部分(就是服务端的程序)
,因为这些RS函数在服务端都是使用JS写的。 一个通用的写法如下:
'必须先调用RSDispatch,而且对大小写敏感
<% RSDispatch %>
<SCRIPT RUNAT=SERVER Language=javascript>
<!--#INCLUDE VIRTUAL="/_ScriptLibrary/RS.ASP"-->
ASP远程调用对象的写法很象是在写DHTML的脚本.事实上,它必须要支持一个public_description
对象来描述通用的公共编程接口,并且实现申明所有的方法和属性:
例子如下:
function Description()

this.GetEmpInfoAsArray = DoGetData;
}
public_description = new Description ();
function DoGetData(employeeName)
{
//为了能够让RS能够识别你自己写出来的函数,
//你必须要把它们申明成一个固定的名字public_description. 
//然后你可以在这个DoGetData中写自己想返回的东西
//在这个例子中将使用SQL字符串和ADO来查询微软给的例子数据库Northwind
//当然你应该给该数据库建立一个叫NW的DSN
aRecs = new Array();
if (rst.RecordCount == 1) {
aRecs[i++] = rst.Fields("EmployeeID").Value 
aRecs[i++] = rst.Fields("Title").Value 
return aRecs;
}
当然了,你也可以把整个记录集都返回回去。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值