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

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

复杂的 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 不违反服务器安全性,用户不能将结构化数据(包括对象)作为参数传递给某个服务器文本来执行。另外,用户进行 remote scripting 调用的服务器必须和用户请求包含该请求的客户页的服务器是同一个。

时间: 2024-11-10 00:00:36

remote script文档(转载自微软)(一)的相关文章

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

文档: 等待方法 终止当前正执行的客户脚本,直到指定调用对象的异步 remote scripting 调用完成. 语法 co.wait() 参数 co 执行 remote scripting 调用而生成的调用对象. 说明 调用该方法将把一个异步 remote scripting 调用转换为同步调用.如果 remote scripting 调用已完成,那么该方法将立即返回.如果您在客户脚本中遇到这种情况──需要来自 remote scripting 调用的结果,那么这种调用是有用的. 示例 下面的

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

文档: 使 Remote Scripting 在客户页中有效 在您能使用 remote scripting 来调用服务器脚本之前,必须将 remote scripting 能力添加到用户的客户页中.使用来自于客户脚本的 remote scripting 所需的例程包含在 Rs.htm 文件中.用户必须将该文件包含到自己的客户页中.另外,用户必须调用一个方法来启动 remote scripting applet. 为了使得 remote scripting 有效 创建一个空的 JavaScript

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

文档: 使 Remote Scripting 在服务器页中有效 除了对客户页进行配置以便于调用远程脚本外,您还必须对自己的服务器页进行配置,以便于对它们进行接收.其做法包括下面这些步骤: 包含 remote scripting 服务器库,并对其进行初始化. 编写客户页能调用的函数或者例程. 将自己的函数和例程显露为方法. 缺省的情况是,客户脚本所调用的某个 ASP 页并不显示在浏览器中──而是简单地在服务器上执行并将结果送到客户端.因此,作为规则,您无需在 ASP 页中包括进任何 HTML 文本

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

文档: 调用 Remote Scripting 方法同步 在对某个客户页和某个服务器页上的 remote scripting 进行配置后,您就可以从自己的客户脚本调用该服务器页的方法了.缺省的情况是,当用户调用某个服务器方法时,它被同步执行──您的客户脚本直到服务器方法执行完毕并返回结果后才能停止运行.一般说来,当您在自己的客户脚本中需要服务器方法结果时,则需同步调用服务器方法. 注意 您也可以异步调用服务器方法.有关详细信息,请参阅异步调用 Remote Scripting 方法. 当您调用某

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

文档: 调用 Remote Scripting 方法异步 Remote scripting 向您提供了异步调用服务器方法的选择 ──当执行服务器方法时,用户的客户脚本继续运行.异步调用 remote scripting 方法使得您可以避免应用程序用户接口速度的减慢,因为您可以在执行服务器脚本的同时继续工作. 注意 如果您的应用程序需要,那么也可以同步调用服务器方法.有关详细信息,请参阅同步调用 Remote Scripting 方法. 异步调用某个 remote script 类似于同步调用.不

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

文档: 检查错误当您在服务器脚本中用 remote scripting 调用方法时,可能会遇到多种错误,包括语法错误和运行时间错误,以及调用 remote scripting 方法时的错误.remote scripting 调用机制向您提供了获知调用过程中所出现错误信息的途径. 错误处理程序根据您是进行同步或者异步调用稍微有些不一样.如果您在进行同步调用时导致错误,那么 remote scripting 机制将在浏览器中显示一条错误消息.错误文字来自于调用对象的 message 属性.有关详细信

remote script文档(转载自微软)<五>同步调用 Remote Scripti

文档: 调用 Remote Scripting 方法同步在对某个客户页和某个服务器页上的 remote scripting 进行配置后,您就可以从自己的客户脚本调用该服务器页的方法了.缺省的情况是,当用户调用某个服务器方法时,它被同步执行──您的客户脚本直到服务器方法执行完毕并返回结果后才能停止运行.一般说来,当您在自己的客户脚本中需要服务器方法结果时,则需同步调用服务器方法.注意 您也可以异步调用服务器方法.有关详细信息,请参阅异步调用 Remote Scripting 方法.当您调用某个服务

remote script文档(转载自微软)<六>异步调用 Remote Scripti

文档: 调用 Remote Scripting 方法异步Remote scripting 向您提供了异步调用服务器方法的选择 ──当执行服务器方法时,用户的客户脚本继续运行.异步调用 remote scripting 方法使得您可以避免应用程序用户接口速度的减慢,因为您可以在执行服务器脚本的同时继续工作.注意 如果您的应用程序需要,那么也可以同步调用服务器方法.有关详细信息,请参阅同步调用 Remote Scripting 方法.异步调用某个 remote script 类似于同步调用.不过,当

remote script文档(转载自微软)<三>使 Remote Scripting

文档: 使 Remote Scripting 在服务器页中有效除了对客户页进行配置以便于调用远程脚本外,您还必须对自己的服务器页进行配置,以便于对它们进行接收.其做法包括下面这些步骤: 包含 remote scripting 服务器库,并对其进行初始化.编写客户页能调用的函数或者例程.将自己的函数和例程显露为方法.缺省的情况是,客户脚本所调用的某个 ASP 页并不显示在浏览器中──而是简单地在服务器上执行并将结果送到客户端.因此,作为规则,您无需在 ASP 页中包括进任何 HTML 文本,而只需

remote script文档(转载自微软)<二>使 Remote Scripting

文档: 使 Remote Scripting 在客户页中有效在您能使用 remote scripting 来调用服务器脚本之前,必须将 remote scripting 能力添加到用户的客户页中.使用来自于客户脚本的 remote scripting 所需的例程包含在 Rs.htm 文件中.用户必须将该文件包含到自己的客户页中.另外,用户必须调用一个方法来启动 remote scripting applet.为了使得 remote scripting 有效 创建一个空的 JavaScript 脚