当前位置: 首页 > 图文教程 > 网络编程 > ASP > remote script文档(转载自微软)(一)

ASP
asp生成三维饼图的函数
ASP下的简洁的多重查询的方法与函数 真不错
发一个ASP的ADODB类代码
A利用ASP小偷和Google实现在线翻译功能的代码
ASP类型网站结合动网论坛会员的方法
Asp下实现多表单域无组件文件上传的实例
asp制作中常用到的函数库集合
易心asp分页类 v1.0
asp中xmlhttp组件发包
检测是否为数字类型的asp代码
可以获得文件的文件名的asp函数
用asp实现访问远程计算机上MDB access数据库文件的方法
用ASP实现写IIS日志的代码
asp在IE浏览器中下载服务端上的各类文件的实现方法
asp汉字中文图片验证码的实现代码
asp WAP获取手机终端信息的一段代码
asp取得数组中的最大值的方法
用asp实现的截取指定格式字符串的代码
asp jmail发邮件 详细解析
ASP编程中连接数据库和数据库操作的常用代码

ASP 中的 remote script文档(转载自微软)(一)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 232 ::
收藏到网摘: n/a

  文档: 远程执行服务器脚本

复杂的 Web 应用程序既调用客户脚本又调用服务器脚本。客户脚本经常用于对应用程序的用户接口进行编程──例如,为了动态改变 Web 页文本,对用户动作,比如双击作出反应,并执行诸如验证这样的面向客户的任务。客户脚本在浏览器中局部执行,这样就向用户提供了一种生动的、反应迅速的接口。

对比来说,服务器脚本是用来对某个应用程序的末段编程的。这经常引起对某个数据库的存取动作,或者执行中间层业务逻辑。服务器脚本也用于创建较大范围的应用程序:也就是可能通过多种不同类型的浏览器(每个都有不同存取能力)进行存取的应用程序。

但是客户和服务器脚本是互斥的。当某个页首次请求时,服务器可能运行服务器脚本,并将页传递给浏览器,然后浏览器就可以运行客户脚本。不过,如果该页上的服务器脚本有必要再次运行的话,那么必须将该页提交回服务器,服务器可以有效地重新运行该页。对页面上控件状态和脚本中值的维护可能涉及到在浏览器和服务器之间来回传递信息的一个复杂的 scripting 过程。另外,客户和服务器之间的折返过程涉及到显示某个应用程序的重载过程。

一种折衷方案是 remote scripting。Remote scripting 使得用户可以在客户脚本中工作,但要调用某个 ASP 页中的方法(函数或者例程)。实际上,用户可以象调用本地例程那样调用服务器脚本,不过它们仍然运行在服务器上,并具有对服务器能力的所有存取权限。由于用户从不把当前页留作调用服务器脚本之用,因此页的状态仍然保持。

用户可以在下列任务中使用 remote scripting:

当用户继续和某个数据输入表单交互作用时,服务器上的数据检查和数据验证。


更新来自服务器的页面中的信息而无须刷新屏幕。
Remote Scripting 如何工作

Remote scripting 是作为一个函数库来实现的,当用户希望运行某个服务器方法时,用户从客户脚本中调用这些函数。当用户调用某种服务器方法时,请求即被传递到浏览器中异步运行的一个代理过程中(在实现过程中,代理是作为一个 Java applet 来实现的。)该代理过程发送一个请求到包含用户调用方法的 ASP 页的服务器中。

服务器加载 ASP 页,而且该 ASP 页上的一个特殊例程将用户的请求调度到正确函数。如果方法有返回值,那么该值即被发送回代理过程,该过程将之包装为一个对象  ──一个调用对象  ──它包含了返回值以及其他有用信息的属性。

当用户在客户脚本中对服务器方法进行调用时,可以在两种方式中选择其一来完成:

同步   用户脚本调用远程过程,并等待其返回。如果用户在处理之前需要远程过程结果的话,那么就有必要这么做。


异步   用户脚本对某个远程脚本进行调用,然后继续处理。该页保持有效状态,以便于用户处理。如果某个调用要持续较长一段时间,那么就有必要使用异步调用。
Remote Scripting 的部件
为了实现 remote scripting,除了用户自己的客户 (.htm) 文件和服务器 (.asp) 文件外,还需要下面的文件:

Rs.htm   包含了用户在自己的 .htm 文件中初始化 remote scripting、执行远程过程、检查远程调用状态,以及获得方法结果时所要使用的方法。


Rs.asp   包含了用户在 .asp 文件中初始化服务器端的 remote scripting,以及在自己的页中调度到适当函数时所要调用的方法。


Rsproxy.class    包含客户和服务器页之间通信时 applet 的 Java 类文件(对象代码)。
这些文件充当用户可以在自己的文件中使用的文件库。一般说来,用户只需要简单地将相关文件(Rs.htm 或者 Rs.asp)包括进自己的客户或者服务器页中,然后遵照所需调用方法进行处理。有关详细信息,请参阅 在客户页中使得 Remote Scripting 有效 以及 在服务器页中使得 Remote Scripting 有效。

在用户的客户页中,用户引用 Rs.htm,这使得该文件中的方法对于用户服务器脚本来说是有效的。对 Rsproxy applet 的调用就在这些方法中。当用户创建服务器页的时候,用户将服务器端的一个 INCLUDE 语句 ─ 该语句引用 Rs.asp 文件 ─ 包括进去。伴随客户文件中的 Rs.htm,这样做使得所需要的方法在服务器页上成为有效的。

所有文件都必须在服务器上是有效的。用户可以将它们放置到任何合适的地方。不过,对于用户的客户和服务器文件来说,当它们从服务器发出请求时,路径都必须是有效的。缺省的情况是,remote scripting 过程假设这些文件在用户服务器或者工程的虚拟根目录外的一个名为 _ScriptLibrary 的文件夹中是有效的。如果用户不将它们放到那里,那么要特别注意它们的路径,因为在创建客户和服务器页时,用户需要指定之。

Remote Scripting 和安全性
Remote scripting 提供和 Java applet 或 IFrames 同样级别的安全性。为了确保 remote scripting 不违反服务器安全性,用户不能将结构化数据(包括对象)作为