使用子程式和函數
作 者 : 青苹果電腦工作室 本文點擊次數:351
一個快速回答的問題:為什麼關於ASP的書中,討論使用子程式和函數的代碼的那麼少?
雖然一行一行地寫ASP代碼要更加簡單,但是以程式的形式來編碼卻有許多益處。
首先,非程式化的代碼不容易移植到Visual Basic。也許目前你沒有這個計劃,但是總有一天你會為了
其效能或可擴充性而將一些代碼移植到組件中。
其次是程式是運行得更快。對ASP效能的最大消耗是上下文轉換,每次從ASP代碼區< % % > 移到無格式的
HTML時都會發生。因為你不會在程式內部編碼一個上下文轉換,就不諱感覺到這種消耗。另外,ASP的
緩衝器也顯示當子程式用程式化代碼點擊頁面時會有很大的不同。這裡是使用程式化代碼的ASP應用程式
"Hello World" 的必須部分:
Private Sub Main()
Response.Write "Hello World!"
End Sub
Call Main
為了完整起見,我在程式中包含了一個上下文轉換的小例子。如果你實驗這個代碼,它會運行,但是請
不要在你自己的應用程式內部這樣做。
< %@ Language=VBScript % >
< %
Private Sub DoStuff()
% >
This is < b > HTML Text! < /b >
< %
End Sub
% >
< HTML >
< HEAD >
< META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0" >
< /HEAD >
< BODY >
< P >< % Call DoStuff % >< /P >
< /BODY >
< /HTML >
程式化的代碼還有一些其它益處。首先你會發現再利用包含在程式中的代碼部分更加容易。其次,要
實現同樣的目的所需要的程式碼更少。第三,你將要開始開發一個大的可再利用程式碼程式庫。開始時它的
形式是.inc 檔案,最後你自己的普通COM組件看起來就像Jeff Gordon(著名賽車選手)一樣棒。
移植你的代碼
有幾件事與從VBScript向Visual Basic移植代碼一樣簡單。一般來說,你需要移走代碼並增加資料類型。
有時,也可以在Visual Basic中應用一些更有效演算法,但是必須先保證代碼可以正常工作。
在我們這個應用程式舉例中,將要移植一些簡單的代碼到兩個Visual Basic COM 組件中。將一些HTML
表格格式拖到表述類中,將ADO 對象代碼拖到包裹了ADO 的資料存取類中。通過將這兩個類都放入
ActiveX DLL 工程檔案中可以使工程檔案稍稍簡單化。在實際工作中,可以為每一層建立單獨的工程
檔案,但是這個工程檔案要在一個DLL中表明思路。如果你想糾正這種情況,就將資料存取類移到另一個
工程檔案中並作為一個DLL編譯。必須在表述要應用它的DLL工程檔案中增加對這個新DLL的引用。
在這個樣本工程檔案中使用的資料庫是一個Northwind 資料庫,它與Visual Basic包含在一起。在這個
樣本工程檔案的ZIP 檔案中,我為那些沒有安裝Visual Basic的人做了這個檔案的一個表格的版本。樣本
工程檔案中還包含一個與ASP代碼一起使用的編譯過的DLL。