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

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

編輯:ASP技巧

文檔: 使 Remote Scripting 在服務器頁中有效

除了對客戶頁進行配置以便於調用遠程腳本外,您還必須對自己的服務器頁進行配置,以便於對它們進行接收。其做法包括下面這些步驟:

包含 remote scripting 服務器庫,並對其進行初始化。


編寫客戶頁能調用的函數或者例程。


將自己的函數和例程顯露為方法。
缺省的情況是,客戶腳本所調用的某個 asp 頁並不顯示在浏覽器中──而是簡單地在服務器上執行並將結果送到客戶端。因此,作為規則,您無需在 ASP 頁中包括進任何 HTML 文本,而只需腳本。不過,還是有可能在某個 ASP 頁上調用包括 Html 文本的方法並作正常顯示的,只要您初始化了 remote scripting 服務器庫,並用下面描述的技巧顯露頁的方法。

包括並初始化 remote scripting 服務器庫

創建服務器端引用 Rs.ASP 文件的 INCLUDE 語句,如下例所示:
<!--#INCLUDE FILE="../_ScriptLibrary/RS.ASP"-->


確保為 Rs.ASP 文件指定正確路徑。INCLUDE 語句可以出現在用戶文件的任何位置。

將一個調用插入到RSDispatch方法中,當您從客戶腳本調用服務器腳本時,可用該方法找到正確過程。該調用可能看起來如下所示:
<% RSDispatch %>


RSDispatch 調用必須是運行在該頁上的第一個服務器腳本。按慣例,典型做法是將其放到文件頭部。

在合適的初始化動作中,創建用戶將從客戶腳本中作為方法調用的函數或者例程。您可以用任何腳本語言書寫過程。過程可以接受任意數目的參數,但參數只可以為字符串、數字、日期,或者其他簡單數據類型──客戶不能將結構化數據(例如,對象或者數組)作為參數。

注意 當您將參數從客戶腳本傳遞到服務器腳本時,它們即被轉換為字符串。如果用戶期望自己的服務器方法中有不同數據類型,可以在方法腳本內部轉換之。

在服務器腳本中創建了過程後,您必須將它們作為方法顯露出來。為了達到該目的,您可以創建一個 JavaScript 公共描述對象,並列出用戶希望顯露的方法。

顯露方法

創建一個 public_description 對象,該對象為您的方法指定構造函數。下面的示例命名構造函數為 MyServerMethods:
<SCRIPT LANGUAGE="Javascript">
   var public_description = new MyServerMethods();


創建您在 public_description 對象中指定的構造函數。在構造函數內部,指定用戶希望顯露的方法名,以及它們相應的函數或者例程名。用戶所使用的語法取決於用戶是在 JavaScript 中還是在 VBScript 中創建自己的方法。可使用下面的語法:
functionconstructor(){
   this.methodName = functionName    //對於 JavaScript 方法來說
    // 對於用 VBScript 書寫的方法,使用下面的語法
   this.methodName = Function('p1','p2','return functionName(p1,p2)')
}

注意 JavaScript 是大小寫敏感的,因此用戶必須根據約定正確大寫。

其中:

methodName   將被顯露的方法名。


functionName   服務器頁中實現 methodName 的函數名。


p1, p2  傳遞給方法的參數列表──如果有參數的話。僅當該方法在 VBScript 中實現時,才能以這種方式顯式地聲明參數。參數名在構造函數內必須是一致的,但不需要和用戶在方法本身中所使用的參數名匹配。用戶不需要顯式地聲明傳遞給 JavaScript 中所實現方法的參數。
下面的示例顯示了一個完整的 ASP 頁,該頁顯露兩個方法,square 和 add,這可以從客戶腳本中調用。square 方法是在 JavaScript 中實現的,而 add 方法則是在 VBScript 中實現的。

<% RSDispatch %>
<!--#INCLUDE FILE="../_ScriptLibrary/RS.ASP"-->

<SCRIPT RUNAT=SERVER LANGUAGE="JavaScript">
   var public_description = new MyServerMethods();
   function MyServerMethods()
   {
      this.square = squareNumber;
      this.add = Function( 'n1','n2','return addNumbers(n1,n2)' );
   }

   function squareNumber(numberToSquare){
      return numberToSquare * numberToSquare;
   }
</SCRIPT>

<SCRIPT RUNAT=SERVER LANGUAGE="VBScript">
Function addNumbers(num1, num2)
    ' 數據類型發生轉換,因為它們作為字符串進行傳遞
    addNumbers = CInt(num1) + CInt(num2)
End Function
</SCRIPT>

 

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