程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> ASP技巧 >> remote script文檔(轉載自微軟)(一)

remote script文檔(轉載自微軟)(一)

編輯:ASP技巧

文檔: 遠程執行服務器腳本

復雜的 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 調用的服務器必須和用戶請求包含該請求的客戶頁的服務器是同一個。


 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved