[点晴永久免费OA]ASP如何在客户端浏览器无刷新页面调用服务器端的函数?
当前位置:点晴教程→点晴OA办公管理信息系统
→『 经验分享&问题答疑 』
远程脚本调用技术(Remote scripting)的特点是客户端浏览器页面上的脚本调用服务器脚本时无需刷新整个页面。
一般情况下,Web页面需要与服务器交互时必须提交表单数据,刷新整个页面。而利用远程脚本调用技术,客户端浏览器页面上的脚本可以像调用本地函数一样调用远程脚本函数,特别是在复杂的表单验证和频繁的数据库操作中,这种优势更是得到了淋漓尽致的发挥。
它的基本原理是其借助本身提供的一组接口函数,客户端程序可以通过一个代理过程(一个java applet)调用服务器端代码。JavaApplet(RSProxy.class)在后台工作,通常情况下用户代码并不需要直接操作它,它的配置也是自动完成的。远程脚本调用既可以是同步调用---调用命令发出后一直等待,直到服务器执行函数结束后返回;也可以是异步调用---函数调用后立即返回,调用必须同时给出回调函数。一个基本远程脚本调用技术必须包含如下文件:
RS.htm:包含客户端支持代码 RSProxy.class:这是一个Java Applet,实际完成客户/服务器交互过程 RS.asp:服务器端支持代码 使用远程脚本调用功能时,客户端和服务器端代码都必须符合一定的要求:在服务器端,首先必须启用远程脚本调用:用#include包含RS.asp,并调用RSDispath函数。在服务器端实现远程脚本支持的关键在于创建public_description对象。它在远程调用时脚本执行过程和普通ASP页面执行过程不同,它把全局脚本代码放入函数并显式调用。 远程脚本调用技术要求服务器端的脚本必须用javascript编写。下面示例声明了一个Description类,该类包含一个公用的saml函数,用new关键字创建Description,即public_description对象。 1.远程脚本调用对象服务器端的要求: <%@language=vbscript%> <%RSDispatch%> <!--#include file="../rs.asp"--> <script language=javascript runat=server> function Description(){ this.saml=saml; } public_description=new Description(); function saml(str){ return "hi!" + str + ":\n你的SessionID=" + Session.SessionID+"\n你的IP="+Request.ServerVariables("REMOTE_ADDR"); } </script> 2.远程调用功能对客户端的要求。首先,启用远程脚本调用技术功能的Web页面必须引用RS.htm;其次,必须调用RSEnableRemotescripting函数。RSEnableRemotescripting函数允许在参数中指定RSProxy.class文件所在的实际路径,果没有指定这个参数,默认为RSProxy.class在_scriptLibrary目录下:
<script language="javascript" src="../rs.htm"></script> <script language="javascript">RSEnableRemotescripting("..");</script> 3.调用远程脚本。完成上面的准备工作后,就可以用RSexecute方法在客户端代码中远程调用服务器端函数了。该方法接受的参数包括服务器ASP页面的URL、远程函数名字以及参数列表。其调用结果是一个调用对象(Call Object),包含该次调用的返回值以及状态信息,其主要属性包括:
id:该次调用的唯一标识(属性实际上是一个XML字符串); return_value:实际返回值,如果存在的话; data:服务器响应该次远程调用返回的原始数据; status:标识本次调用的状态,-1表示失败,0表示完成。 message:有关本次调用的文本信息。如调用成功,为Completed,否则,包含错误说明。 该文章在 2022/6/27 11:51:48 编辑过 |
关键字查询
相关文章
正在查询... |