remote script文檔(轉載自微軟)(一)_遠程指令碼

來源:互聯網
上載者:User
文檔: 遠程執行伺服器指令碼

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.