javascript|教程
使用javascript中的OLE Automation
2. 什麼是綁定
在你適用一個物件模型的屬性、方法和事件之前,你必需首先建立一個計劃性的引用給包含了你想適用的屬性、方法或者事件的類。你可以通過聲明一個局部物件變數以保留一個引用給這個對象來實現這個目的。然後,你要為局部變數指定一個對象的應用。
VB和VBScript使用CreateObject()函數,來實現在Jscript使用這個ActiveXObject()建構函式的時候為一個Automation對象允許並返回一個引用。
實際上,綁定是指Visual Basic代碼訪問在其它的應用程式物件的方法。當你從一個應用程式使用Automation來處理另外一個應用程式中對象的時候,你編寫Visaul Basic代碼的應用程式就是一個Automation控制器。這個你正在處理對象的應用程式是Automation伺服器。當一個Automation控制器建立一個指向由Automation伺服器提供對象的變數,Visual Basic 必需驗證對象是否存在以及使用對象的任何屬性和方法是正確指定的。這個驗證過程就所謂的”綁定”。有兩種Visual Basic程式開發人員使用的綁定類型要注意: late binding(遲綁定) 和 early binding(早綁定)。
遲綁定
遲綁定是發生在已耗用時間並且比早綁定要慢。在遲綁定Automation代碼中,Visual Basic在每次執行包括那個對象的行代碼時必需查詢對象以及它的方法和屬性。為了驗證這個對象以及它的方法和屬性是否正確指定,Visual Basic 必需利用作業系統和支援對象的應用來檢查。下面看看一段Visual Basic 代碼:
Dim wdApp As Object
Set wdApp = CreateObject("Word.Application")
這個wdApp變數被定義為一般類型的對象。當這個變數被聲明了,Visual Basic 並不知道它是屬於什麼類型的對象,所以你必須要為這個對象留出一定量的記憶體。既然特定對象引用是被指定到普通變數的,所以應用程式沒有辦法知道對象的介面是由什麼組成的。只有在已耗用時間,應用程式才綁定到使用者介面上。因此,不管你是什麼時候引用新的對象,Visual Baisc必須檢查系統註冊以獲得對象的資訊。
早綁定
早綁定是一個解決慢Automation效能的好的解決方案。早綁定發生在編譯的時候而不是在啟動並執行時候,所以如果你的代碼是在編譯階段儲存的,在代碼運行之前已經綁定結束了。當使用早綁定,Visual Basic 不需要連續驗證對象資訊,而是在應用程式執行的過程中使用對象。
另外,不是所有的Automation伺服器都支援早綁定。這個Automation伺服器必須支援一個類型庫,這個類型庫包含了關於伺服器對象、方法和屬性的資訊。為了利用早綁定,你必須為Automation伺服器的類型庫設定一個引用。Visual Basic裝載類型庫到記憶體中,這使得它可以識別這些對象並且在代碼編譯的時候綁定它們。以下的程式碼片段顯示了怎樣為對象建立一個早綁定介面:
Dim wdApp As Word.Application
Set wdApp = CreateObject("Word.Application")