[點晴永久免費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 編輯過 |
關鍵字查詢
相關文章
正在查詢... |