[點(diǎn)晴永久免費(fèi)OA]ASP如何在客戶端瀏覽器無(wú)刷新頁(yè)面調(diào)用服務(wù)器端的函數(shù)?
遠(yuǎn)程腳本調(diào)用技術(shù)(Remote scripting)的特點(diǎn)是客戶端瀏覽器頁(yè)面上的腳本調(diào)用服務(wù)器腳本時(shí)無(wú)需刷新整個(gè)頁(yè)面。
一般情況下,Web頁(yè)面需要與服務(wù)器交互時(shí)必須提交表單數(shù)據(jù),刷新整個(gè)頁(yè)面。而利用遠(yuǎn)程腳本調(diào)用技術(shù),客戶端瀏覽器頁(yè)面上的腳本可以像調(diào)用本地函數(shù)一樣調(diào)用遠(yuǎn)程腳本函數(shù),特別是在復(fù)雜的表單驗(yàn)證和頻繁的數(shù)據(jù)庫(kù)操作中,這種優(yōu)勢(shì)更是得到了淋漓盡致的發(fā)揮。
它的基本原理是其借助本身提供的一組接口函數(shù),客戶端程序可以通過(guò)一個(gè)代理過(guò)程(一個(gè)java applet)調(diào)用服務(wù)器端代碼。JavaApplet(RSProxy.class)在后臺(tái)工作,通常情況下用戶代碼并不需要直接操作它,它的配置也是自動(dòng)完成的。遠(yuǎn)程腳本調(diào)用既可以是同步調(diào)用---調(diào)用命令發(fā)出后一直等待,直到服務(wù)器執(zhí)行函數(shù)結(jié)束后返回;也可以是異步調(diào)用---函數(shù)調(diào)用后立即返回,調(diào)用必須同時(shí)給出回調(diào)函數(shù)。一個(gè)基本遠(yuǎn)程腳本調(diào)用技術(shù)必須包含如下文件:
RS.htm:包含客戶端支持代碼 RSProxy.class:這是一個(gè)Java Applet,實(shí)際完成客戶/服務(wù)器交互過(guò)程 RS.asp:服務(wù)器端支持代碼 使用遠(yuǎn)程腳本調(diào)用功能時(shí),客戶端和服務(wù)器端代碼都必須符合一定的要求:在服務(wù)器端,首先必須啟用遠(yuǎn)程腳本調(diào)用:用#include包含RS.asp,并調(diào)用RSDispath函數(shù)。在服務(wù)器端實(shí)現(xiàn)遠(yuǎn)程腳本支持的關(guān)鍵在于創(chuàng)建public_description對(duì)象。它在遠(yuǎn)程調(diào)用時(shí)腳本執(zhí)行過(guò)程和普通ASP頁(yè)面執(zhí)行過(guò)程不同,它把全局腳本代碼放入函數(shù)并顯式調(diào)用。 遠(yuǎn)程腳本調(diào)用技術(shù)要求服務(wù)器端的腳本必須用javascript編寫(xiě)。下面示例聲明了一個(gè)Description類,該類包含一個(gè)公用的saml函數(shù),用new關(guān)鍵字創(chuàng)建Description,即public_description對(duì)象。 1.遠(yuǎn)程腳本調(diào)用對(duì)象服務(wù)器端的要求: <%@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.遠(yuǎn)程調(diào)用功能對(duì)客戶端的要求。首先,啟用遠(yuǎn)程腳本調(diào)用技術(shù)功能的Web頁(yè)面必須引用RS.htm;其次,必須調(diào)用RSEnableRemotescripting函數(shù)。RSEnableRemotescripting函數(shù)允許在參數(shù)中指定RSProxy.class文件所在的實(shí)際路徑,果沒(méi)有指定這個(gè)參數(shù),默認(rèn)為RSProxy.class在_scriptLibrary目錄下:
<script language="javascript" src="../rs.htm"></script> <script language="javascript">RSEnableRemotescripting("..");</script> 3.調(diào)用遠(yuǎn)程腳本。完成上面的準(zhǔn)備工作后,就可以用RSexecute方法在客戶端代碼中遠(yuǎn)程調(diào)用服務(wù)器端函數(shù)了。該方法接受的參數(shù)包括服務(wù)器ASP頁(yè)面的URL、遠(yuǎn)程函數(shù)名字以及參數(shù)列表。其調(diào)用結(jié)果是一個(gè)調(diào)用對(duì)象(Call Object),包含該次調(diào)用的返回值以及狀態(tài)信息,其主要屬性包括:
id:該次調(diào)用的唯一標(biāo)識(shí)(屬性實(shí)際上是一個(gè)XML字符串); return_value:實(shí)際返回值,如果存在的話; data:服務(wù)器響應(yīng)該次遠(yuǎn)程調(diào)用返回的原始數(shù)據(jù); status:標(biāo)識(shí)本次調(diào)用的狀態(tài),-1表示失敗,0表示完成。 message:有關(guān)本次調(diào)用的文本信息。如調(diào)用成功,為Completed,否則,包含錯(cuò)誤說(shuō)明。 該文章在 2022/6/27 11:51:48 編輯過(guò) |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |